yii2 ajax投稿送信エラーの解決不正なリクエスト(#400)---データ送信スキームを確認できません

原因分析

yii2.0のアンチcsrfの問題が原因で、csrftokenがないと送信に失敗します。

最初の解決策は、Csrfをオフにすることです

コントローラ内で閉じています

public $enableCsrfValidation = false;

または

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

2番目の解決策は、フォームに非表示フィールドを追加することです

csrftoken非表示ドメインを自分で追加し、他のデータと一緒にコントローラーに渡すことができます。

 <input type="hidden" name="_csrf" id="_csrf" value="<?= Yii::$app->request->getCsrfToken() ?>">

ここでnameの値を_csrfとして渡すことが重要です。最初にname = _csrfを渡しました。成功しなかった場合は、理由を見つけてください。ここでのトークン名は、構成で定義されたパラメーターと同じである必要があります。フレームワーク内のファイル。名前は同じです。main.php構成ファイル

ここに画像の説明を挿入

3番目の解決策は、AJAXに_csrfフィールドを追加することです。

var csrfToken = $('meta[name="csrf-token"]').attr("content");

$.ajax({

type: 'POST',

url: url,

data: {_csrf:csrfToken},

success: success,

dataType: dataType

});

おすすめ

転載: blog.csdn.net/guo_qiangqiang/article/details/112977744