API-Gateway CORS: kein 'Access-Control-Allow-Origin'-Header
Obwohl CORS wurde durch die API-Gateway und Access-Control-Allow-Origin-header gesetzt ist, habe ich noch die folgende Fehlermeldung, wenn Sie versuchen, rufen Sie die API von AJAX in Chrome:
XMLHttpRequest-Objekt kann nicht geladen werden http://XXXXX.execute-api.us-west-2.amazonaws.com/beta/YYYYY. Kein "Access-Control-Allow-Origin' - header vorhanden ist, auf die angeforderte Ressource. Herkunft 'null' ist daher nicht der Zugriff erlaubt. Die Antwort hatte Sie den HTTP-status-code 403.
Ich versucht, um die URL durch Briefträger und es zeigt die oben genannten header ist erfolgreich bestanden:
Und aus dem OPTIONEN Antwort:
Wie kann ich mein API-Aufruf aus dem browser ohne Rückgriff auf JSON-P?
Bucket Policy
? Stellen Sie sicher, dass die Methode in der Politik InformationsquelleAutor der Frage makinbacon | 2016-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bekomme ich das gleiche problem. Ich habe verwendet, 10h, findout.
https://serverless.com/framework/docs/providers/aws/events/apigateway/
InformationsquelleAutor der Antwort riseres
Wenn jemand anderes ist, läuft in dieser immer noch war ich in der Lage, die Spur der Ursache in meiner Anwendung.
Wenn Sie mit API-Gateway mit kundenspezifischen Authorizers - API-Gateway sendet eine 401 oder 403 zurück, bevor es tatsächlich trifft Ihre server. Durch die Standard - API-Gateway ist NICHT konfiguriert für CORS bei der Rückkehr 4xx aus einer benutzerdefinierten Vollmachtgeber.
Zu beheben - in der API-Gateway-Konfiguration - gehen Sie auf "Gateway-Antworten", erweitern Sie "Standard-4XX" und fügen Sie ein CORS-Konfigurations-header gibt. also
Stellen Sie sicher, zu re-implementieren Sie Ihre gateway - und voila!
InformationsquelleAutor der Antwort Gabriel Doty
Habe meine Probe arbeiten: ich nur eingefügt 'Access-Control-Allow-Origin': '*', innen Header:{} in der generierten nodejs Lambda-Funktion. Ich machte keine verpasst um die Lambda-generierten API-Schicht.
Hier mein NodeJS:
Hier mein AJAX-call
InformationsquelleAutor der Antwort MannyC
1) musste ich das gleiche tun wie @riseres und einige andere änderungen.Diese sind meine Antwort-Header:
2) Und
Anhand dieser Unterlagen:
http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
Wenn Sie proxy verwenden für lambda-Funktionen auf die API-Gateway-Konfiguration, die post-oder get-Methoden haben keinen zusätzlichen Header, nur die Optionen bietet. Sie müssen es manuell tun, in der Antwort(server-oder lambda-Reaktion).
3) Und
Daneben, ich brauchte, um zu deaktivieren Sie die "API-Schlüssel Erforderlich" option in meinem API-gateway-Methode post.
InformationsquelleAutor der Antwort Carlos Alberto Schneider