Zugriff auf die Subdomäne von der Hauptdomäne fehlgeschlagen: Kein „Access-Control-Allow-Origin“-Header
Das Problem tritt auf, wenn Sie es versuchen Greifen Sie über eine React-App in der Hauptdomäne auf einen API-Server zu, der in einer Subdomäne gehostet wird. Bei der Verwendung von CORS (Cross-Origin Resource Sharing) für die Cross-Origin-Kommunikation muss der Server den Header „Access-Control-Allow-Origin“ senden, um anzugeben, welchen Domänen der Zugriff gestattet ist.
Problemdefinition
Beim Versuch, über die React-App auf die API zuzugreifen, ist ein CORS-Richtlinienfehler mit der Fehlermeldung „Auf der angeforderten Ressource ist kein ‚Access-Control-Allow-Origin‘-Header vorhanden“ aufgetreten ." Trotz der Verwendung unterschiedlicher Ansätze zum Festlegen der CORS-Middleware, einschließlich der Verwendung der Gin-Contrib/Cors-Bibliothek und des manuellen Hinzufügens des Headers, bleibt der Fehler weiterhin bestehen.
Lösung
Es dreht sich Beachten Sie, dass das Problem nicht in der serverseitigen CORS-Konfiguration liegt, sondern in den Einstellungen Ihrer AWS Load Balancer-Zielgruppe. Sie hatten zuvor in der Zielgruppe das Protokoll auf HTTPS eingestellt, obwohl Sie nur ACM-Zertifikate für Route 53 und ALB bereitgestellt hatten. Nachdem Sie HTTPS in der Zielgruppe durch HTTP ersetzt hatten, wurde das Problem behoben und die API wurde über die React-App zugänglich.
CORS-Probleme debuggen
Um CORS zu diagnostizieren- Bei ähnlichen Problemen ist es wichtig, die Preflight-Anfrage mit den Chrome DevTools oder einem speziellen Tool wie cURL zu prüfen. Überprüfen Sie den Preflight-Antwortheader, um sicherzustellen, dass der erwartete „Access-Control-Allow-Origin“-Header vorhanden ist. Wenn die Antwort einen anderen Statuscode als 204 Kein Inhalt anzeigt, kann dies auf ein Problem mit der serverseitigen Antwort oder ihrer Interpretation durch den Client hinweisen.
Das obige ist der detaillierte Inhalt vonWarum antwortet mein API-Server auf einer Subdomain trotz ordnungsgemäßer CORS-Konfiguration nicht mit dem Header „Access-Control-Allow-Origin'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!