解決yii2.0 api post報錯問題

yii2.0 api post報錯的解決辦法:1、關閉“_csrf”驗證;2、在表單中添加隱藏域;3、在Ajax中添加“_csrf”數據字段;4、將“post”提交改為“get”。

解決yii2.0 api post報錯問題

Yii2.0中POST提交數據時出現400請求錯誤

1、發現問題所在的方法

使用Chrome瀏覽器,檢查錯誤,到network查看response:

Bad?Request?(#400):?Unable?to?verify?your?date?submission.???(無法驗證提交的數據)

推薦:《yii教程

2、解決方法

(1)關閉_csrf驗證

public?function?init(){ ????$this->enableCsrfValidation?=?false; }

(2)在表單中添加隱藏域

<input>request-&gt;csrfToken??&gt;"&gt;

如果我們使用的是Yii框架的助手類生成表單,它會自帶_csrf字段,不需要我們額外地添加隱藏域。

(3)Ajax中添加_csrf數據字段

$.ajax({ ?????????????url:?'demo.php',//發送驗證碼的url ?????????????type:?'post', ?????????????data:?{ ?????????????????_csrf:"=Yii::$app-&gt;request-&gt;csrfToken?&gt;", ?????????????????mobile:123 ?????????????}, ?????????????success:?function(){ ?????????????????????alert('發送成功'); ?????????????}, ?????????????error:?function(){ ?????????????????alert('發送失敗'); ?????????????????return?false; ?????????????} ?????????})

(4)最簡單的方法,將post提交改為get

說明:Yii框架有自帶的數據驗證功能,如果我們post提交的數據不帶有和框架對應的_csrf相同的驗證數據字段,提交的數據會被視為不可信的字段,便會出現400錯誤。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享