yii2.0 api post報錯的解決方法:1、關閉「_csrf」驗證;2、在表單中新增隱藏域;3、在Ajax中新增「_csrf」資料欄位;4、將「post ”提交改為“get”。
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: 'demo.php',//发送验证码的url type: 'post', data: { _csrf:"<?=Yii::$app->request->csrfToken?>", mobile:123 }, success: function(){ alert('发送成功'); }, error: function(){ alert('发送失败'); return false; } })
(4)最簡單的方法,將post提交改為get
說明:Yii框架有自帶的資料驗證功能,如果我們post提交的資料不帶有和框架對應的_csrf相同的驗證資料字段,提交的資料會被視為不可信的字段,便會出現400錯誤。
以上是解決yii2.0 api post報錯問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!