Heim >Web-Frontend >js-Tutorial >Warum ist mein Header „Access-Control-Allow-Origin' in „Access-Control-Allow-Headers' nicht zulässig, wenn ich Dateien mit einer POST-Anfrage in Angular sende?
Problem: Cross-Origin-Anforderungsfehler mit Headern
Beim Versuch, Dateien mit einer POST-Anfrage zu senden, kann es sein, dass Entwickler auf einen Fehler stoßen, der darauf hinweist Ein bestimmter Anforderungsheader ist im Antwortheader „Access-Control-Allow-Headers“ nicht zulässig.
Um dieses Problem zu beheben, hat der Entwickler der Anforderung die folgenden Header hinzugefügt:
"Access-Control-Allow-Origin" : "*", "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS", "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"
Allerdings Dies führte zu einem neuen Fehler, der besagte, dass der Header „Access-Control-Allow-Origin“ vom Header „Access-Control-Allow-Headers“ nicht zugelassen wurde.
Lösung: Header-Einschränkungen und Standardinhaltstyp
Bei Cross-Origin-Anfragen senden Browser eine Preflight-OPTIONS-Anfrage, wenn der Inhaltstyp nicht auf einen von drei spezifischen Typen eingestellt ist: „application/x-www-form-urlencoded“ , „multipart/form-data“ oder „text/plain“.
Standardmäßig legt Angular den Inhaltstyp auf „application/json“ fest, was nicht zu den akzeptablen Typen für Cross-Origin-Anfragen gehört . Dadurch wird die Preflight-OPTIONS-Anfrage ausgelöst, die dann aufgrund der Einschränkungen im Header „Access-Control-Allow-Headers“ abgelehnt wird.
Um dieses Problem zu beheben, kann der Entwickler den Standardinhaltstyp in Angular oder überschreiben Erlauben Sie den Header „Access-Control-Allow-Headers“ auf der Serverseite.
Ein Angular-Beispiel, das den Standardheader überschreibt:
$http.post(url, data, { headers : { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' } });
Das obige ist der detaillierte Inhalt vonWarum ist mein Header „Access-Control-Allow-Origin' in „Access-Control-Allow-Headers' nicht zulässig, wenn ich Dateien mit einer POST-Anfrage in Angular sende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!