Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich die Fehlermeldung „Antwort auf Preflight hat ungültigen HTTP-Statuscode 404“, wenn ich eine AngularJS-POST-Anfrage stelle?

Warum erhalte ich die Fehlermeldung „Antwort auf Preflight hat ungültigen HTTP-Statuscode 404“, wenn ich eine AngularJS-POST-Anfrage stelle?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 14:15:03240Durchsuche

Why am I getting a

AngularJS POST schlägt fehl: CORS und Preflight-Anfragen verstehen

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:

  • Stellen Sie sicher, dass der Header „Access-Control-Allow-Origin“ auf „*“ gesetzt ist, um Anfragen von jedem Ursprung zuzulassen.
  • Erwägen Sie, CORS-Prüfungen auf der Clientseite zu deaktivieren, wenn sie für Sie nicht erforderlich sind Anwendung.
  • Legen Sie den Access-Control-Max-Age-Header fest, um anzugeben, wie lange Browser CORS-Preflight-Antwortheader zwischenspeichern sollen.

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!

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