Heim > Web-Frontend > js-Tutorial > Warum erhalte ich die Fehlermeldung „Kein „Access-Control-Allow-Origin'-Header vorhanden', wenn ich Cross-Origin-Anfragen stelle?

Warum erhalte ich die Fehlermeldung „Kein „Access-Control-Allow-Origin'-Header vorhanden', wenn ich Cross-Origin-Anfragen stelle?

DDD
Freigeben: 2024-12-28 09:43:17
Original
999 Leute haben es durchsucht

Why Am I Getting a

„Kein ‚Access-Control-Allow-Origin‘-Header vorhanden“ beim Abrufen von Daten mit JavaScript

Cross-Origin Resource Sharing (CORS ) ist ein Mechanismus, der es Webbrowsern ermöglicht, Anfragen an andere Domänen zu stellen und so den Sicherheitsbedenken Rechnung zu tragen, die durch unterschiedliche Ursprünge entstehen. Um CORS zu aktivieren, müssen Server bestimmte Header in ihre Antworten einschließen, z. B. „Access-Control-Allow-Origin“.

1. Verwendung eines CORS-Proxys

Wenn Ihr Server nicht über die erforderlichen Header verfügt, können Sie einen CORS-Proxy zwischen Ihrem Client und Server implementieren. Dieser Proxy, wie zum Beispiel CORS Anywhere, kann Antworten so umschreiben, dass sie die fehlenden Header enthalten und so ursprungsübergreifende Anfragen ermöglichen.

2. Vermeidung von CORS-Preflight

CORS-Preflight-Anfragen sind OPTIONS-Anfragen, die von Browsern gesendet werden, um festzustellen, ob der Server ursprungsübergreifende Anfragen zulässt. Um das Auslösen des Preflights zu vermeiden, stellen Sie sicher, dass Ihre Anfragen:

  • Verwenden Sie keine Anmeldeinformationen (Autorisierungsheader).
  • Verwenden Sie vom Server akzeptierte Medientypen ohne benutzerdefinierte Content-Type-Header (z. B. application /x-www-form-urlencoded).

3. Fehlerbehebung für den Wildcard-Access-Control-Allow-Origin-Header

Browser lehnen Antworten mit einem Wildcard-Header (*) Access-Control-Allow-Origin für Anfragen mit Anmeldeinformationen ab. Stattdessen muss der Header-Wert mit dem Ursprung des anfordernden Clients übereinstimmen. Um dies zu beheben:

  • Konfigurieren Sie Ihren Server so, dass er den Origin-Anforderungsheader in den Access-Control-Allow-Origin-Antwortheader zurückgibt.
  • Vermeiden Sie das Chrome CORS-Plugin, da es zu „false“ führen kann Positives.

4. Header in Request vs. Response

Entfernen Sie die Zeilen im JavaScript-Code (headers.append(...)), die Access-Control-Allow-*-Header festlegen. Dies sind Antwortheader, die nicht in Anfragen enthalten sein sollten.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Kein „Access-Control-Allow-Origin'-Header vorhanden', wenn ich Cross-Origin-Anfragen stelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage