Durch CORS verhinderte Fehler: „Origin ist durch Access-Control-Allow-Origin nicht zulässig“
Einführung:
Der Fehler „Origin ist durch Access-Control-Allow-Origin nicht zulässig“ tritt bei der ursprungsübergreifenden Ressourcenfreigabe auf (CORS), wenn ein clientseitiges Skript versucht, von einem anderen Ursprung als dem, von dem es ausgeführt wird, auf eine Ressource zuzugreifen.
Ursachen:
Dieser Fehler hat mehrere mögliche Ursachen:
- Same-Origin-Richtlinie: JavaScript darf ohne ausdrückliche Erlaubnis des Servers nicht auf Ressourcen außerhalb seiner Domäne zugreifen. Diese Richtlinie verhindert, dass bösartige Skripte Benutzerdaten stehlen oder die Sicherheit der Website gefährden.
- Fehlkonfigurierte Serverantwort: Der Server muss den entsprechenden Access-Control-Allow-Origin-Header in seine Antwort auf die Gewährung einschließen Zugang zu bestimmten Ursprüngen. Wenn dieser Header fehlt oder falsch ist, verhindert der Browser die Anfrage.
Lösung des Problems:
- Überprüfen Sie die Serverantwort : Überprüfen Sie die Antwortheader des Servers, um sicherzustellen, dass der Access-Control-Allow-Origin-Header enthalten und auf den gewünschten Wert eingestellt ist origin.
- Aktivieren Sie CORS auf dem Server: Wenn auf dem Server CORS nicht aktiviert ist, muss er für die Unterstützung konfiguriert werden. Dies kann das Einrichten von CORS-Regeln in den Konfigurationsdateien des Webservers umfassen.
- JSONP verwenden: JSONP (JSON mit Padding) ist eine Problemumgehung für die Same-Origin-Richtlinie, die die Rückgabe von Daten ermöglicht als Funktionsaufruf und nicht als XML-Dokument. Der Server muss jedoch für die Unterstützung von JSONP konfiguriert sein.
- Verwenden Sie einen Proxy: Ein serverseitiger Proxy, z. B. ein PHP-Skript oder ein ASP-Dienst, kann verwendet werden, um Ressourcen von einem abzurufen unterschiedlichen Ursprungs und übergeben Sie sie an das clientseitige Skript.