使用 Yii 2 在 Ajax 调用上收到错误请求(#400) [英] Getting bad request (#400) on Ajax calls using Yii 2
问题描述
这是我的代码:
$(document).on('change', '#tblhotel-int_zone_id', function(e){
var zoneId = $(this).val();
var form_data = {
zone: zoneId
};
$.ajax({
url: "state",
type: "POST",
data: form_data,
success: function(response)
{
alert(response);
}
});
});
这表明:
错误请求 (#400):无法验证您提交的数据.
Bad Request (#400): Unable to verify your data submission.
而且我已经有了 <?= Html::csrfMetaTags() ?>
.我该如何解决这个问题?
And I already have <?= Html::csrfMetaTags() ?>
. How can I fix this problem?
推荐答案
注意:参见 Skullcrasher 的答案 以正确的方式解决问题,因为我的答案建议禁用 跨站请求伪造.
Note: See the answer from Skullcrasher to fix the issue in the correct way as my answer suggests disabling the Cross-Site Request Forgery.
您的 enableCsrfValidation 有问题.要阅读有关它的更多信息,您可以阅读这里.
You have a problem with enableCsrfValidation. To read more about it you can read here.
要禁用 CSRF,请将此代码添加到您的控制器:
To disable CSRF, add this code to your controller:
public function beforeAction($action) {
$this->enableCsrfValidation = false;
return parent::beforeAction($action);
}
这将禁用所有操作.您可能应该根据 $action 仅对特定操作禁用它.
This will disable for all actions. You should probably, depending on the $action, disable it only for specific actions.
这篇关于使用 Yii 2 在 Ajax 调用上收到错误请求(#400)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!