Heim >PHP-Framework >YII >Lösen Sie das Problem des yii2.0-API-Post-Fehlers

Lösen Sie das Problem des yii2.0-API-Post-Fehlers

藏色散人
藏色散人Original
2020-07-20 10:26:182663Durchsuche

Lösung für den yii2.0-API-Post-Fehler: 1. Deaktivieren Sie die „_csrf“-Überprüfung. 2. Fügen Sie das Datenfeld „_csrf“ in Ajax hinzu. „Submit“ wird in „get“ geändert.

Lösen Sie das Problem des yii2.0-API-Post-Fehlers

Ein 400-Anfragefehler tritt auf, wenn Daten per POST in Yii2.0 übermittelt werden

1 Methoden zum Finden Problem

Verwenden Sie den Chrome-Browser, überprüfen Sie den Fehler, gehen Sie zum Netzwerk, um die Antwort zu überprüfen:

Bad Request (#400): Unable to verify your date submission.   (无法验证提交的数据)

Empfohlen: "yii-Tutorial"

2. Lösung

(1) Deaktivieren Sie die _csrf-Validierung

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

(2) Fügen Sie versteckte Felder im Formular hinzu

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

Wenn wir die Hilfsklasse des Yii-Frameworks verwenden Um das Formular zu generieren, wird es mit dem Feld _csrf geliefert, und wir müssen keine zusätzlichen versteckten Felder hinzufügen.

(3) _csrf-Datenfeld in Ajax hinzufügen

$.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) Die einfachste Methode besteht darin, die Beitragsübermittlung in get zu ändern

Hinweis: Das Yii-Framework verfügt über eine eigene Datenüberprüfung Funktion: Wenn die von unserem Beitrag übermittelten Daten nicht dasselbe Verifizierungsdatenfeld wie das dem Framework entsprechende _csrf haben, werden die übermittelten Daten als nicht vertrauenswürdiges Feld betrachtet und es tritt ein 400-Fehler auf.

Das obige ist der detaillierte Inhalt vonLösen Sie das Problem des yii2.0-API-Post-Fehlers. 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
Vorheriger Artikel:Welche Funktionen hat yii2?Nächster Artikel:Welche Funktionen hat yii2?