ホームページ > PHPフレームワーク > YII > yii2.0 APIポストエラーの問題を解決する

yii2.0 APIポストエラーの問題を解決する

藏色散人
リリース: 2020-07-20 10:26:18
オリジナル
2656 人が閲覧しました

Yii2.0 API ポスト エラーの解決策: 1. "_csrf" 検証をオフにする; 2. フォームに隠しフィールドを追加する; 3. Ajax に "_csrf" データ フィールドを追加する; 4. "post "Submit" を変更する「取得」に変更されます。

yii2.0 APIポストエラーの問題を解決する

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: &#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 submit を get

に変更することです 注: Yii フレームワークには独自のデータ検証があります関数の場合、投稿データがフレームワークに対応する_csrfと同じ検証データフィールドを持たない場合、投稿データは信頼できないフィールドとみなされ、400エラーが発生します。

以上がyii2.0 APIポストエラーの問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート