Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CORSfür REST APIs in API Gateway
Die ursprungsübergreifende gemeinsame Nutzung von Ressourcen (CORS)
Feststellen, ob der CORS Support aktiviert werden soll
Eine HTTPursprungsübergreifende Anfrage richtet sich an:
-
Eine andere Domäne (z. B. von
example.com
anamazondomains.com
) -
Eine andere Subdomäne (z. B. von
example.com
anpetstore.example.com
) -
Ein anderer Port (z. B. von
example.com
anexample.com:10777
) -
Ein anderes Protokoll (z. B. von
https://example.com
anhttp://example.com
)
Wenn Sie nicht auf Ihre zugreifen können API und eine Fehlermeldung erhalten, die Folgendes enthältCross-Origin Request Blocked
, müssen Sie es möglicherweise aktivierenCORS.
Herkunftsübergreifende HTTP Anfragen können in zwei Typen unterteilt werden: einfache Anfragen und nicht einfache Anfragen.
Aktivierung CORS für eine einfache Anfrage
Eine HTTP Anfrage ist einfach, wenn alle der folgenden Bedingungen erfüllt sind:
-
Sie wird gegen eine API Ressource ausgegeben, die nur
GET
HEAD
, undPOST
Anfragen zulässt. -
Wenn es sich um eine
POST
-Methodenanfrage handelt, muss sie einenOrigin
-Header enthalten. -
Der Anfragenutzlast-Inhaltstyp ist
text/plain
,multipart/form-data
oderapplication/x-www-form-urlencoded
. -
Die Anfrage enthält keine benutzerdefinierten Header.
-
Alle zusätzlichen Anforderungen, die in der CORSMozilla-Dokumentation für einfache Anfragen
aufgeführt sind.
Bei einfachen quellenübergreifenden POST
-Methodenanfragen muss die Antwort Ihrer Ressource den Header Access-Control-Allow-Origin: '*'
oder Access-Control-Allow-Origin:
enthalten.'origin'
Alle anderen ursprungsübergreifenden HTTP Anfragen sind keine einfachen Anfragen.
Aktivierung CORS für eine nicht einfache Anfrage
Wenn Ihre API Ressourcen nicht einfache Anfragen erhalten, müssen Sie je nach CORS Integrationstyp zusätzlichen Support aktivieren.
Aktivierung CORS für Nicht-Proxy-Integrationen
Für diese Integrationen verlangt das CORSProtokoll
So erstellen Sie eine Preflight-Antwort:
Erstellen Sie eine
OPTIONS
-Methode mit einer Mock-Integration.-
Fügen Sie der Antwort der Methode 200 die folgenden Antwort-Header hinzu:
-
Access-Control-Allow-Headers
-
Access-Control-Allow-Methods
-
Access-Control-Allow-Origin
-
-
Stellen Sie das Passthrough-Verhalten der Integration auf ein.
NEVER
In diesem Fall wird die Methodenanforderung eines Inhaltstyps, dem keine Zuordnung zugewiesen wurde, mit der Antwort HTTP 415 Nicht unterstützter Medientyp zurückgewiesen. Weitere Informationen finden Sie unter Integrations-Pass-Through-Verhalten. -
Geben Sie Werte für die Antwort-Header ein. Verwenden Sie die folgenden Header-Werte, um alle Ursprünge, alle Methoden und allgemeine Header zuzulassen:
-
Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'
-
Access-Control-Allow-Methods: '*'
-
Access-Control-Allow-Origin: '*'
-
Nachdem Sie die Preflight-Anfrage erstellt haben, müssen Sie den Access-Control-Allow-Origin:
Header 'origin'
Access-Control-Allow-Origin: '*'
oder für alle CORS -aktivierten Methoden für mindestens alle 200 Antworten zurückgeben.
Aktivierung CORS für Nicht-Proxy-Integrationen mit dem AWS Management Console
Sie können das verwenden, um es AWS Management Console zu aktivieren. CORS APIGateway erstellt eine OPTIONS
Methode und fügt den Access-Control-Allow-Origin
Header zu Ihren vorhandenen Antworten zur Methodenintegration hinzu. Dies funktioniert nicht immer, und manchmal müssen Sie die Integrationsantwort manuell ändern, um den Access-Control-Allow-Origin
Header für alle CORS -aktivierten Methoden für mindestens alle 200 Antworten zurückzugeben.
CORSUnterstützung für Proxy-Integrationen aktivieren
Bei einer Lambda-Proxyintegration oder HTTP Proxyintegration ist Ihr Backend für die Rückgabe der Access-Control-Allow-Headers
Header Access-Control-Allow-Origin
Access-Control-Allow-Methods
, und verantwortlich, da eine Proxyintegration keine Integrationsantwort zurückgibt.
Die folgenden Lambda-Beispielfunktionen geben die erforderlichen CORS Header zurück: