yii では、「送信したデータが検証できない」という状況がよく発生しますが、これは yii に csrf 検証があるためです。
csrf 検証をオフにするだけです。
1. コントローラに
public $enableCsrfValidation = false;
を追加します。 2. フォーム
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app -> request -> csrfToken ?>">
に隠しフィールドを追加します。ただし、上級バージョンでは、フロントエンドとバックエンドが存在します。名前は必ずしも _csrf である必要はなく、_csrf-backend や _csrf-frontend などの場合もあります。
_csrf のフィールド名は、現在のページと一致している必要があります。
3. Ajax の提出
ここで使用する ajax ライブラリは axios ajax
axios({ url: url, headers:{ '<?php echo \yii\web\Request::CSRF_HEADER; ?>' : ' <?php echo Yii::$app -> request -> csrfToken; ?>' // _csrf验证 }, data: postData, }).then(response => { // 请求成功 回调 }).catch(error => { // 请求失败 回调 })
推奨関連記事チュートリアル: yii チュートリアル
以上がyii2.0 では、送信したデータを検証できないことを csrf に通知します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。