Verstehen des Fehlers „Origin is Not Allowed by Access-Control-Allow-Origin“
Beim Versuch, über verschiedene Ursprünge hinweg auf Ressourcen zuzugreifen ( B. Domänen, Ports), kann der Fehler „Origin ist durch Access-Control-Allow-Origin nicht zulässig“ auftreten. Dieser Fehler ist auf die Same-Origin-Richtlinie des Browsers zurückzuführen, die aus Sicherheitsgründen Cross-Origin-Anfragen einschränkt.
In Ihrem speziellen Fall ist die Anfrage von localhost:8080 für den Cross-Origin-Zugriff durch das Server-Hosting nicht zulässig gdata.youtube.com. Das Code-Snippet versucht, eine XMLHttpRequest an den Server zu senden, aber der Access-Control-Allow-Origin-Header des Servers ist nicht so eingestellt, dass er Anfragen von Ihrem Ursprung zulässt.
Fehlerursachen:
- Nicht übereinstimmende Ursprünge: Cross-Origin-Anfragen sind nur zulässig, wenn die Ursprünge identisch sind (z. B. http://example.com fordert von http://example.com an).
- Port-Unterschiede: Unterschiedliche Ports (z. B. example.com:80, die von example.com:81 anfragt) gelten als unterschiedliche Ursprünge.
- CORS-Header nicht festgelegt: Der Server muss Access-Control-Allow explizit festlegen -Origin-Header mit den zulässigen Ursprüngen, um ursprungsübergreifende Anfragen zu ermöglichen.
Lösungen:
Um diesen Fehler zu beheben, ziehen Sie die folgenden Lösungen in Betracht:
-
CORS auf dem Server konfigurieren: Der Server muss den Access-Control-Allow-Origin-Header mit dem zulässigen Ursprung festlegen (z. B. Access-Control-Allow-Origin: http:// localhost:8080).
-
JSONP verwenden: JSONP (JSON mit Padding) ist eine Technik, die eine Rückruffunktion verwendet, um ursprungsübergreifende Anforderungen zu verarbeiten. Der Server gibt in der Rückruffunktion gekapselte Daten zurück, sodass Browser sie ausführen können.
-
Verwenden Sie einen serverseitigen Proxy: Ein serverseitiger Proxy (z. B. PHP, ASP) kann als fungieren ein Vermittler zwischen dem Browser und dem Remote-Server. Der Proxy stellt die Anfrage an den Remote-Server und verarbeitet die CORS-Header, sodass der Browser auf die Daten zugreifen kann.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Origin is Not Allowed by Access-Control-Allow-Origin'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!