"Kein 'Access-Control-Allow-Origin'-Header in der API-Antwort vorhanden"
CORS-Proxy für die Lösung von Header-Problemen
Wenn Sie keine Kontrolle über den Server haben, können Sie den Header-Mangel durch den Einsatz eines CORS-Proxys umgehen. Eine einfach bereitzustellende Option ist cors-anywhere (https://github.com/Rob--W/cors-anywhere), die mit wenigen Befehlen eingerichtet werden kann. Dieser Proxy fügt Antworten den erforderlichen Access-Control-Allow-Origin-Header hinzu.
CORS-Preflight vermeiden
Der betreffende Code löst aufgrund des Authorization-Headers einen CORS-Preflight aus . Darüber hinaus kann Content-Type: application/json auch einen Preflight provozieren. Um dies zu vermeiden, muss der Server so geändert werden, dass er angemessen auf die Preflight-OPTIONS-Anfrage mit den erforderlichen Headern reagiert. Alternativ kann in Betracht gezogen werden, die Anfrage so zu gestalten, dass diese Auslöser vermieden werden (z. B. Verwendung unterschiedlicher Header oder eingebetteter JSON).
Problem mit „Wildcard“ Access-Control-Allow-Origin
Bei Antworten mit Anmeldeinformationen darf der Wert des Access-Control-Allow-Origin-Headers nicht „*“ sein. Es muss genau mit dem Ursprung des Frontend-Codes übereinstimmen, z. B. „http://127.0.0.1:3000“. Die Serverkonfiguration kann angepasst werden, um den Ursprungswert automatisch im Header widerzuspiegeln.
Unnötige Anforderungsheader entfernen
Entfernen Sie diese Zeilen aus dem JavaScript-Code, da sie Antwortheader darstellen und sollte nicht in Anfragen enthalten sein:
headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true');
Das obige ist der detaillierte Inhalt vonWie kann ich CORS-Fehler „Kein ‚Access-Control-Allow-Origin'-Header' beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!