首頁  >  文章  >  php框架  >  解決yii2.0 api post報錯問題

解決yii2.0 api post報錯問題

藏色散人
藏色散人原創
2020-07-20 10:26:182637瀏覽

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 name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>">

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

(3)Ajax中新增_csrf資料欄位

$.ajax({
             url: &#39;demo.php&#39;,//发送验证码的url
             type: &#39;post&#39;,
             data: {
                 _csrf:"<?=Yii::$app->request->csrfToken?>",
                 mobile:123
             },
             success: function(){
                     alert(&#39;发送成功&#39;);
             },
             error: function(){
                 alert(&#39;发送失败&#39;);
                 return false;
             }
         })

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

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

以上是解決yii2.0 api post報錯問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn