Yii2.0 API ポスト エラーの解決策: 1. "_csrf" 検証をオフにする; 2. フォームに隠しフィールドを追加する; 3. Ajax に "_csrf" データ フィールドを追加する; 4. "post "Submit" を変更する「取得」に変更されます。
Yii2.0
1 で POST 経由でデータを送信すると、400 リクエスト エラーが発生します。
Chrome ブラウザを使用してエラーを確認し、ネットワークにアクセスして応答を確認します:
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 submit を get
に変更することです 注: Yii フレームワークには独自のデータ検証があります関数の場合、投稿データがフレームワークに対応する_csrfと同じ検証データフィールドを持たない場合、投稿データは信頼できないフィールドとみなされ、400エラーが発生します。
以上がyii2.0 APIポストエラーの問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。