„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:
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:
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!