AngularJS POST schlägt fehl: Lösung des ungültigen HTTP-Statuscodes
In diesem Artikel befassen wir uns mit dem Problem „Antwort für Preflight hat ungültiges HTTP“. Statuscode 404“, der auftritt, wenn POST-Anfragen von AngularJS an einen Server gestellt werden.
Der bereitgestellte AngularJS-Code richtet eine GET-Anfrage ein, die erfolgreich Daten vom Server abruft. Bei der POST-Anfrage tritt jedoch aufgrund der vom Browser gesendeten Preflight-OPTIONS-Anfrage der oben genannte Fehler auf. Die CORS-Richtlinie (Cross-Origin Resource Sharing) schreibt vor, dass Browser eine Preflight-OPTIONS-Anfrage senden, bevor sie tatsächliche Anfragen stellen.
In SlimPHP verarbeitet der Server CORS, indem er die erforderlichen Header festlegt. Die Überprüfung der Anforderungs-/Antwort-Header zeigt jedoch, dass der Server einen 404-Statuscode für die Preflight-OPTIONS-Anfrage zurückgibt, was falsch ist.
Um dieses Problem zu beheben, muss der clientseitige AngularJS-Code geändert werden, um dies zu verhindern die Preflight-OPTIONEN-Anfrage. Dies kann erreicht werden, indem die Standard-Header wie folgt zurückgesetzt werden:
<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 dieser Header sendet der Browser die Preflight-OPTIONS-Anfrage nicht mehr. Stattdessen wird die eigentliche POST-Anfrage direkt gesendet und der problematische 404-Statuscode für die Preflight-Anfrage umgangen.
Diese Lösung unterstreicht, wie wichtig es ist, die CORS-Richtlinie zu verstehen und Preflight-Anfragen korrekt zu bearbeiten. Durch die Behandlung sowohl der clientseitigen als auch der serverseitigen Aspekte von CORS können Entwickler erfolgreiche Cross-Origin-Anfragen sicherstellen und den Fehler „Ungültiger HTTP-Statuscode 404“ beseitigen.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine AngularJS-POST-Anfrage mit „Ungültiger HTTP-Statuscode 404' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!