Heim >Web-Frontend >js-Tutorial >Wie behebe ich den Fehler „Anfrage-Header-Feld Access-Control-Allow-Headers ist durch Access-Control-Allow-Header nicht zulässig' in Cross-Origin-Anfragen?
Behebung des Fehlers „Anforderungsheaderfeld Access-Control-Allow-Headers ist durch Access-Control-Allow-Headers nicht zulässig“
In Um den ursprünglichen Fehler zu beheben, wurden der Anfrage Header hinzugefügt, um verschiedene Methoden und Header zu ermöglichen. Dies führte jedoch zu einem neuen Fehler: „Das Anforderungsheaderfeld Access-Control-Allow-Origin ist von Access-Control-Allow-Headern nicht zulässig.“
Grundlegendes zu CORS und Preflight-Anfragen
Das Problem ergibt sich aus der Tatsache, dass Browser eine Preflight-OPTIONS-Anfrage für Cross-Origin-Anfragen mit bestimmten Inhaltstypen senden. Standardmäßig sendet Angular Daten mit einem Anwendungs-/JSON-Inhaltstyp, der diese Preflight-Anfrage auslöst.
Serverantwort und Header
Der Server muss den Zugriff explizit zulassen. Fügen Sie in der Antwort den Header „Control-Allow-Headers“ hinzu, um den Fehler zu verhindern. Andernfalls interpretiert der Browser die Antwort so, dass keine Header zulässig sind.
Lösung: Inhaltstyp oder Serverantwort ändern
Um das Problem zu beheben, ändern Sie entweder den Client oder Serverkonfiguration:
1. Clientseitig (Angular):
Überschreiben Sie den standardmäßigen Angular-Inhaltstyp in application/x-www-form-urlencoded, was keine Preflight-Anfrage auslöst:
$http.post(url, data, { headers : { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' } });
2. Serverseitig:
Alternativ können Sie den Access-Control-Allow-Headers-Header auf dem Server zulassen. Die folgenden Antwortheader müssen festgelegt werden:
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Anfrage-Header-Feld Access-Control-Allow-Headers ist durch Access-Control-Allow-Header nicht zulässig' in Cross-Origin-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!