1. 程式人生 > 其它 >解決yii2 ajax post提交報錯 Bad Request (#400)---Unable to verify your data submission方案

解決yii2 ajax post提交報錯 Bad Request (#400)---Unable to verify your data submission方案

技術標籤: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

});