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?

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?

Susan Sarandon
Susan SarandonOriginal
2024-10-29 06:32:02970Durchsuche

How to Fix the

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:

  • Access-Control-Allow-Origin: * oder der spezifische Ursprung (z. B. https://example.com)
  • Access-Control -Allow-Methoden: GET, POST, PUT, DELETE, OPTIONS
  • Access-Control-Allow-Headers: Alle Header, die der Client in der Anfrage sendet (z. B. Content-Type, Authorization)

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!

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