解決yii2 ajax post提交報錯 Bad Request (#400)---Unable to verify your data submission方案
阿新 • • 發佈:2021-02-01
技術標籤:Yii框架
解決yii2 ajax post提交報錯 Bad Request #400--Unable to verify your data submission方案
原因分析
是因為yii2.0的防csrf問題,沒有csrftoken是提交不成功的
第一種解決辦法是關閉Csrf
控制器裡面關閉
public $enableCsrfValidation = false;
或者
public function init(){
$this ->enableCsrfValidation = false;
}
第二種解決辦法是在form表單中加入隱藏域
可以自己加個csrftoken隱藏域,和其他資料一起傳到控制器中。
<input type="hidden" name="_csrf" id="_csrf" value="<?= Yii::$app->request->getCsrfToken() ?>">
將name為_csrf的值傳過去 這裡是重點,我剛開始傳的是name=_csrf ,如果不成功,接著找原因,原來,這兒的token名一定要和你框架中配置檔案中定義的那個引數名一致。 main.php配置檔案
第三種解決辦法是在AJAX中加入_csrf欄位
var csrfToken = $('meta[name="csrf-token"]').attr("content");
$.ajax({
type: 'POST',
url: url,
data: {_csrf:csrfToken},
success: success,
dataType: dataType
});