Preflight-Anfrage schlägt mit Fehler fehl: Ungültiger HTTP-Statuscode 404
In AngularJS-Anwendungen kann der Versuch, eine POST-Anfrage durchzuführen, manchmal dazu führen, dass Folgende Fehlermeldung: „Antwort für Preflight hat ungültigen HTTP-Statuscode 404.“ Dieser Fehler tritt aufgrund eines Problems mit der Cross-Origin Resource Sharing (CORS)-Richtlinie auf.
Die von den meisten modernen Browsern implementierte CORS-Richtlinie stellt sicher, dass Webanwendungen sicher Anfragen an andere Domänen stellen können. Bevor die eigentliche Anfrage gestellt wird, sendet der Browser eine Preflight-Anfrage (OPTIONS) an den Server, um zu prüfen, ob der Server die Anfrage von der Ursprungsdomäne zulässt.
Um dieses Problem zu beheben, stellen Sie sicher, dass der Server auf den Preflight reagiert Anfrage mit den entsprechenden Headern. Konkret sollte der Server die folgenden Header festlegen:
In SlimPHP können Sie diese Header beispielsweise mit der Methode „response().headers()“ festlegen:
<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>
Darüber hinaus müssen Sie möglicherweise die automatische Preflight-Verarbeitung deaktivieren, indem Sie die AngularJS-Konfiguration ändern:
<code class="js">app.config(function ($httpProvider) { $httpProvider.defaults.headers.common = {}; $httpProvider.defaults.headers.post = {}; $httpProvider.defaults.headers.put = {}; $httpProvider.defaults.headers.patch = {}; });</code>
Indem Sie den Server für die Verarbeitung von Preflight-Anfragen konfigurieren und die automatische Preflight-Verarbeitung in AngularJS deaktivieren, können Sie erfolgreich POST-Anfragen von Ihrem Server aus stellen AngularJS-Client zu Ihrem Server.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meiner AngularJS-Anwendung die Meldung „Preflight-Anfrage schlägt fehl mit Fehler: Ungültiger HTTP-Statuscode 404'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!