Heim > PHP-Framework > YII > Hauptteil

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

藏色散人
Freigeben: 2020-07-20 10:26:18
Original
2633 Leute haben es durchsucht

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.   (无法验证提交的数据)
Nach dem Login kopieren

Empfohlen: "yii-Tutorial"

2. Lösung

(1) Deaktivieren Sie die _csrf-Validierung

public function init(){
    $this->enableCsrfValidation = false;
}
Nach dem Login kopieren

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

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

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;
             }
         })
Nach dem Login kopieren

(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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage