Lösung:
1. Deaktivieren Sie die CSRF-Überprüfung
Fügen Sie
public $enableCsrfValidation = false;
im Controller hinzu 2. Fügen Sie ein verstecktes Feld im Formular hinzu
<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app -> request -> csrfToken ?>">
In der erweiterten Version wird es jedoch Front- und Backends geben, was bedeutet, dass der Name nicht unbedingt _csrf ist , es kann _csrf-backend oder _csrf-frontend usw. sein. Der Feldname von
_csrf muss mit der aktuellen Seite übereinstimmen.
Empfohlenes Tutorial: YII-Framework
3. Ajax-Einreichung
Ich verwende die Ajax-Bibliothek Axios, aber sie sind alle ähnlich.
axios({ url: url, headers:{ '<?php echo \yii\web\Request::CSRF_HEADER; ?>' : '<?php echo Yii::$app -> request -> csrfToken; ?>' // _csrf验证 }, data: postData, }).then(response => { // 请求成功 回调 }).catch(error => { // 请求失败 回调 })
Weitere programmierbezogene Inhalte finden Sie in der Spalte Einführung in die Programmierung auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonyii csrf Die von Ihnen übermittelten Daten können nicht überprüft werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!