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.
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: 'demo.php',//发送验证码的url type: 'post', data: { _csrf:"<?=Yii::$app->request->csrfToken?>", mobile:123 }, success: function(){ alert('发送成功'); }, error: function(){ alert('发送失败'); 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!