⭐️个人博客:caohongyuan.com,更多分享,欢迎浏览!⭐️
接触Yii2.0框架时间不久,忙于开发和完成任务,没有太多时间去认真读框架介绍和使用技巧,每次都是在遇到问题的时候,临时搜索博客等技术论坛来解决问题,就比如要写的这个博客:Yii2.0 Ajax异步POST出现400 bad request的错误问题。当然这个问题并不是才遇到,想还是记录下来吧,方便以后翻阅。
表单或者Ajax提交数据,报400 bad request 错误话,大概问题就是Yii2.0框架的crsf验证不通过引起的。
解决办法:
1. 关闭 crsf 验证:当然这个方法是不推荐,开着总比关着好。
在类里,所有方法最前面加入如下代码:
public $enableCsrfValidation = false;
public function actionIndex(){
}
或者在方法里加入也可以!如下:
public function actionIndex(){
$this->enableCsrfValidation = false;
}
2. 在表单中加入_csrf字段
首先在表单中加入:
<input type="hidden" name="_csrf" value="<?= Yii::$app->request->csrfToken?>">
再在Ajax中加入:
$.ajax({
url:'index',
data: {
'_csrf':$("input[name='_csrf']").val(),
},
type: 'POST',
dataType:'json',
success:function (res) {
}
})
欢迎指导!
千而の大狮子!