Heim > Artikel > Backend-Entwicklung > Warum schlagen AngularJS-POST-Anfragen mit dem HTTP-Statuscode 404 fehl?
Behebung von AngularJS-POSTs mit HTTP-Statuscode 404 fehlgeschlagen
In AngularJS schlagen POST-Anfragen möglicherweise mit der Fehlermeldung „Antwort für Preflight ist ungültig“ fehl HTTP-Statuscode 404.“ Dieses Problem tritt auf, wenn der Browser vor der eigentlichen POST-Anfrage eine Preflight-OPTIONS-Anfrage sendet, um Berechtigungen zu überprüfen. Der Server muss diese Preflight-Anfrage verarbeiten und mit den entsprechenden CORS-Headern antworten.
Serverseitige Konfiguration
Stellen Sie sicher, dass Sie im SlimPHP-Server die folgenden Header eingefügt haben in Ihrer Antwort:
<code class="php">$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type'); $app->response()->headers->set('Content-Type', 'application/json'); $app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); $app->response()->headers->set('Access-Control-Allow-Origin', '*');</code>
Clientseitige Konfiguration
Deaktivieren Sie als Nächstes die Preflight-Anfrage, indem Sie den AngularJS-Clientcode ändern:
<code class="javascript">app.config(function ($httpProvider) { $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; });</code>
Durch das Zurücksetzen der Header auf der Clientseite sendet der Browser eine direkte POST-Anfrage ohne eine Preflight-OPTIONS-Anfrage. Dadurch sollte der HTTP-404-Fehler behoben werden.
CORS-Übersicht
Cross-Origin Resource Sharing (CORS) ermöglicht Anfragen von anderen Domänen als der, die den Inhalt bereitstellt. Dabei handelt es sich um eine Preflight-Anfrage zur Überprüfung der Berechtigungen vor der eigentlichen Anfrage. Eine unsachgemäße Behandlung dieser Preflight-Anfragen kann zum HTTP-404-Fehler führen. Wenn Sie CORS verstehen und sowohl den Client als auch den Server entsprechend konfigurieren, können Sie POST-Anfragen in AngularJS erfolgreich ausführen.
Das obige ist der detaillierte Inhalt vonWarum schlagen AngularJS-POST-Anfragen mit dem HTTP-Statuscode 404 fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!