在yii AJAX get中定义url

ego6inou  于 2022-11-09  发布在  其他
关注(0)|答案(4)|浏览(112)

我尝试执行 AJAX 获取到yii2控制器,但是链接无法正确传递
这就是我所尝试的:

$.ajax({
   url: '<?php echo Yii::$app->request->baseUrl. "/checks/items" ?>',  //this fails
   type: 'get',
   data: {
             category:category,
             _csrf : '<?=Yii::$app->request->getCsrfToken()?>'
         },
   success: function (data) {
                var parsedResult = $.parseJSON(data);
      .....
   $("#labels_trackcenter").html(html);
   }
  });

如何传递该url?
以下是配置URL规则:

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ],
eivnm1vs

eivnm1vs1#

你可以试试这个,注意连接。

$this->registerJs("
        $.ajax({
        url: '" . yii\helpers\Url::to(["/checks/items"]) . "',
        //OR
        url: '" . Yii::$app->urlManager->baseUrl."/checks/items',

        type: get,
        data: {
                  category:category,
                  _csrf : '" . Yii::$app->request->getCsrfToken() . "'
              },
        success: function (data) {
                     var parsedResult = $.parseJSON(data);
                      .....
                     $("#labels_trackcenter").html(html);
        }
      });
   ");
ru9i0ody

ru9i0ody2#

您可以使用
URL::目的路由

$.ajax({
   url: '<?php echo Url::toRoute('checks/items'); ?>',  
   type: 'get',
   data: {
             category:category,
             _csrf : '<?=Yii::$app->request->getCsrfToken()?>'
         },
   success: function (data) {
                var parsedResult = $.parseJSON(data);
      .....
   $("#labels_trackcenter").html(html);
   }
  });
58wvjzkj

58wvjzkj3#

您可以使用Url helper类,它会根据web.php文件中配置URL规则更改您URL

$.ajax({ 
   //use Url helper class for ajax url 
   url: "<?= yii\helpers\Url::to(['@web/checks/items'],true) ?>", 
   type: 'get', 
   data: { 
     category:category, 
     _csrf : "<?=Yii::$app->request->getCsrfToken()?>" 
   }, 
   success: function (data) { 
     var parsedResult = $.parseJSON(data); 
     ..... 
     $("#labels_trackcenter").html(html); 
   } 
});
o2gm4chl

o2gm4chl4#

外部J的情况
在表单中指定URL

<form action="<?php echo Url::toRoute('participant-prod/pull-live-data'); ?>" method="get" id="pull-part-data-form">

调用JS文件中的Url

$("#pull-part-data-form").submit((e) => {
e.preventDefault();
let targetUrl = $("#pull-part-data-form").attr('action');
$.ajax({
    url: targetUrl,
    method: 'get',
    data: $("#pull-part-data-form").serializeArray(),
    success: function (response) {

    },
    error: function (error) {
        console.error(error)
    }
});

})

相关问题