Einführung
Durchführen von HTTP-Interaktionen, insbesondere POST-Anfragen, zwischen AngularJS Bei Anwendungen und Back-End-Servern können manchmal Probleme auftreten. Eine häufig auftretende Fehlermeldung lautet „Antwort für Preflight hat ungültigen HTTP-Statuscode 404.“ Dieser Artikel soll Aufschluss über diesen Fehler geben und eine Lösung bieten.
CORS und Preflight-Anfragen
Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, den Browser verwenden um Netzwerkanfragen zwischen verschiedenen Ursprüngen zu verwalten. Wenn ein Browser eine Anfrage von einem Ursprung (z. B. http://localhost:8080) an einen anderen Ursprung (z. B. http://example.com) sendet, sendet er zunächst eine Preflight-Anfrage mit der OPTIONS-Methode, um festzustellen, ob der Server ermöglicht die eigentliche Anfrage.
Verstehen des Fehlers
Der Fehler „Antwort für Preflight hat ungültigen HTTP-Statuscode 404“ weist darauf hin, dass die vom Browser gesendete Preflight-OPTIONS-Anfrage vorliegt Es wird der HTTP-Statuscode 404 (Nicht gefunden) zurückgegeben. Dies bedeutet, dass der Server nicht korrekt auf die Preflight-Anfrage reagiert.
Lösung
Die Lösung für diesen Fehler liegt in der ordnungsgemäßen Verarbeitung von CORS-Preflight-Anfragen auf der Serverseite . Im in der Frage bereitgestellten SlimPHP-Beispiel besteht das Problem darin, dass die Preflight-Anfrage nicht bearbeitet wird und einen 404-Statuscode zurückgibt.
Um dies zu beheben, muss man den folgenden Code zum SlimPHP-Server hinzufügen:
<code class="php">$app->options('/{routes:.+}', function ($request, $response, $args) { return $response; });</code>
Dieser Code definiert einen umfassenden CORS-Preflight-Anfragehandler für alle Routen in der Anwendung. Es legt die erforderlichen CORS-Header fest und gibt eine leere Antwort zurück.
Zusätzliche Tipps
Darüber hinaus können die folgenden Tipps dabei helfen, CORS-bezogene Probleme zu vermeiden:
Durch Befolgen dieser Schritte können Sie CORS-bezogene Probleme beheben Probleme lösen und erfolgreiche POST-Anfragen von AngularJS-Anwendungen stellen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Antwort auf Preflight hat ungültigen HTTP-Statuscode 404', wenn ich eine AngularJS-POST-Anfrage stelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!