AJAX呼叫无法发送请求Yii2

时间:2019-08-15 08:04:41

标签: javascript ajax yii2

我的视线中有AJAX通话。它的代码如下:

<?php 
        $this->registerJs("
        $(document).on('click','.btn-block',function(){
        var id = $(this).parents('.user-tr').attr('id');
        $.ajax({
            url: '" . Yii::$app->request->baseUrl . "admin/block-users',
            type: 'POST',
            data: {id : id,_csrf : " . Yii::$app->request->getCsrfToken() . "},
            success: function (data) {
                console.log(data);
                },
            });
        })"); 
    ?>

我需要向actionBlockUsers的{​​{1}}函数发送请求,如下所示:

AdminController

问题是我无法发送请求。检查XHR也不显示任何内容。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要将Yii::$app->request->getCsrfToken()括在引号中,因为它通常会在字符串中包含==,如果不在qutotes内,则会破坏脚本,使用javascript时,更好的方法是使用{ {1}}使用yii.jsyii.getCsrfParam()而不是硬编码yii.getCsrfToken()来获取csrf令牌和参数名称。

此外,您应该尝试使用hereDOC语法以提高可读性。

因此在您的视图中将代码替换为以下内容

_csrf