我的视线中有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也不显示任何内容。我该如何解决这个问题?
答案 0 :(得分:1)
您需要将Yii::$app->request->getCsrfToken()
括在引号中,因为它通常会在字符串中包含==
,如果不在qutotes内,则会破坏脚本,使用javascript时,更好的方法是使用{ {1}}使用yii.js
和yii.getCsrfParam()
而不是硬编码yii.getCsrfToken()
来获取csrf令牌和参数名称。
此外,您应该尝试使用hereDOC语法以提高可读性。
因此在您的视图中将代码替换为以下内容
_csrf