Heim  >  Artikel  >  PHP-Framework  >  yii csrf Die von Ihnen übermittelten Daten können nicht überprüft werden

yii csrf Die von Ihnen übermittelten Daten können nicht überprüft werden

王林
王林Original
2020-02-20 14:35:591927Durchsuche

yii csrf Die von Ihnen übermittelten Daten können nicht überprüft werden

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:{
        &#39;<?php echo \yii\web\Request::CSRF_HEADER; ?>&#39; : &#39;<?php echo Yii::$app -> request -> csrfToken; ?>&#39; // _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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn