Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
CORSper REST APIs in API Gateway
La condivisione di risorse tra origini (CORS)
Determinare se abilitare CORS il supporto
Una HTTP richiesta multiorigine è quella che viene effettuata per:
-
Un dominio diverso (ad esempio da
example.com
aamazondomains.com
) -
Un sottodominio diverso (ad esempio da
example.com
apetstore.example.com
) -
Una porta diversa (ad esempio da
example.com
aexample.com:10777
) -
Un protocollo diverso (ad esempio da
https://example.com
ahttp://example.com
)
Se non riesci ad accedere al tuo API e ricevi un messaggio di errore che contieneCross-Origin Request Blocked
, potrebbe essere necessario abilitarlo. CORS
HTTPLe richieste provenienti da più origini possono essere suddivise in due tipi: richieste semplici e richieste non semplici.
Abilitazione CORS per una richiesta semplice
Una HTTP richiesta è semplice se tutte le seguenti condizioni sono vere:
-
Viene emessa contro una API risorsa che consente solo
GET
ePOST
richieste.HEAD
-
Se si tratta di una richiesta di metodo
POST
, deve includere un'intestazioneOrigin
. -
Il tipo di contenuto del payload della richiesta è
text/plain
,multipart/form-data
oapplication/x-www-form-urlencoded
. -
La richiesta non contiene intestazioni personalizzate.
-
Eventuali requisiti aggiuntivi elencati nella CORSdocumentazione di Mozilla per richieste semplici
.
Per richieste di metodo POST
multiorigine semplici, la risposta della risorsa deve includere l'intestazione Access-Control-Allow-Origin: '*'
o Access-Control-Allow-Origin:
.'origin'
Tutte le altre richieste provenienti da più origini sono HTTP richieste non semplici.
Attivazione di una CORS richiesta non semplice
Se le tue API risorse ricevono richieste non semplici, devi abilitare un CORS supporto aggiuntivo a seconda del tipo di integrazione.
Abilitazione CORS per integrazioni non proxy
Per queste integrazioni, il CORSprotocollo
Creazione di una risposta di verifica preliminare
Creare un metodo
OPTIONS
per l'integrazione fittizia.-
Aggiungere le seguenti intestazioni di risposta alla risposta del metodo 200:
-
Access-Control-Allow-Headers
-
Access-Control-Allow-Methods
-
Access-Control-Allow-Origin
-
-
Imposta il comportamento del passthrough di integrazione su.
NEVER
In questo caso, la richiesta del metodo di un tipo di contenuto non mappato verrà rifiutata con una risposta HTTP 415 Unsupported Media Type. Per ulteriori informazioni, consulta Comportamenti passthrough di integrazione. -
Immettere i valori per le intestazioni delle risposte. Per consentire tutte le origini, tutti i metodi e le intestazioni comuni, usare i seguenti valori di intestazione:
-
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: '*'
-
Dopo aver creato la richiesta di preflight, è necessario restituire l'Access-Control-Allow-Origin:
intestazione 'origin'
Access-Control-Allow-Origin: '*'
o per tutti i metodi CORS -enabled per almeno tutte le 200 risposte.
Abilitazione delle CORS integrazioni non proxy utilizzando il AWS Management Console
È possibile utilizzare AWS Management Console per abilitare. CORS APIGateway crea un OPTIONS
metodo e aggiunge l'Access-Control-Allow-Origin
intestazione alle risposte di integrazione dei metodi esistenti. Questo non sempre funziona e a volte è necessario modificare manualmente la risposta di integrazione per restituire l'Access-Control-Allow-Origin
intestazione per tutti i metodi CORS abilitati per almeno tutte le 200 risposte.
Attivazione del CORS supporto per le integrazioni proxy
Per un'integrazione proxy Lambda o un'integrazione HTTP proxy, il backend è responsabile della restituzione delle Access-Control-Allow-Headers
intestazioni Access-Control-Allow-Origin
Access-Control-Allow-Methods
, e, perché un'integrazione proxy non restituisce una risposta di integrazione.
L'esempio seguente di funzioni Lambda restituisce le intestazioni richiesteCORS: