

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à.

# Configurazione di CORS per HTTP APIs in API Gateway
<a name="http-api-cors"></a>

[CORS (Cross-origin resource sharing)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) è una caratteristica di sicurezza del browser che limita le richieste HTTP avviate da script in esecuzione nel browser. Se non riesci ad accedere all'API e ricevi un messaggio di errore che contiene `Cross-Origin Request Blocked`, potresti dover abilitare CORS. Per ulteriori informazioni, consulta [Che cos'è CORS?](https://aws.amazon.com/what-is/cross-origin-resource-sharing/)

CORS è in genere necessario per creare applicazioni Web che accedano a APIs server ospitati su un dominio o un'origine diversi. È possibile abilitare CORS per consentire le richieste all'API da un'applicazione Web ospitata in un dominio diverso. Ad esempio, se l'API è ospitata in `https://{api_id}.execute-api.{region}.amazonaws.com/` e si desidera chiamare l'API da un'applicazione Web ospitata in `example.com`, l'API deve supportare CORS.

Se si configura CORS per un'API, API Gateway invia automaticamente una risposta alle richieste OPTIONS preliminari, anche se non esiste una route OPTIONS configurata per l'API. Per una richiesta CORS, API Gateway aggiunge le intestazioni CORS configurate alla risposta da un'integrazione.

**Nota**  
Se si configura CORS per un'API, API Gateway ignora le intestazioni CORS restituite dall'integrazione back-end.

È possibile specificare i seguenti parametri in una configurazione CORS. Per aggiungere questi parametri utilizzando la console Gateway API, scegli **Aggiungi** dopo aver inserito il valore.


| Intestazioni CORS | Proprietà di configurazione CORS | Valori di esempio | 
| --- | --- | --- | 
| Access-Control-Allow-Origin | allowOrigins |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/http-api-cors.html)  | 
| Access-Control-Allow-Credentials | allowCredentials | true | 
| Access-Control-Expose-Headers | exposeHeaders | data,, \* x-api-id | 
| Access-Control-Max-Age | maxAge | 300 | 
| Access-Control-Allow-Methods | allowMethods | GET, POST, DELETE, \* | 
| Access-Control-Allow-Headers | allowHeaders | authorization, \* | 

Per restituire le intestazioni CORS, la richiesta deve contenere un'intestazione `origin`. Per il metodo `OPTIONS`, la richiesta deve contenere un'intestazione `origin` e un'intestazione `Access-Control-Request-Method`.

La configurazione CORS potrebbe essere simile all'immagine seguente:

![configurazione CORS per HTTP APIs](http://docs.aws.amazon.com/it_it/apigateway/latest/developerguide/images/http-cors-console.png)


## Configurazione di CORS per un'API HTTP con un instradamento `$default` e un provider di autorizzazioni
<a name="http-api-cors-default-route"></a>

È possibile abilitare CORS e configurare l'autorizzazione per qualsiasi route di un'API HTTP. Quando si abilitano CORS e l'autorizzazione per la [route `$default`](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html#http-api-develop-routes.default), ci sono alcune considerazioni speciali di cui tenere conto. Il percorso `$default` cattura le richieste per tutti i metodi e i percorsi che non sono stati definiti in modo esplicito, incluse le richieste `OPTIONS`. Per supportare le richieste `OPTIONS` non autorizzate, aggiungi all'API una route `OPTIONS /{proxy+}` che non richiede l'autorizzazione e collega un'integrazione alla route. Il percorso `OPTIONS /{proxy+}` ha priorità più alta rispetto al percorso `$default`. Di conseguenza, consente ai client di inviare richieste `OPTIONS` all'API senza autorizzazione. Per ulteriori informazioni sulle priorità di instradamento, consultare [Routing delle richieste API](http-api-develop-routes.md#http-api-develop-routes.evaluation).

## Configurare CORS per un'API HTTP utilizzando la CLI AWS
<a name="http-api-cors.example"></a>

Il comando [update-api](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-api.html) seguente abilita le richieste CORS da `https://www.example.com`:

**Example**  

```
aws apigatewayv2 update-api --api-id {{api-id}} --cors-configuration AllowOrigins="https://www.example.com"
```

Per maggiori informazioni, consultare [CORS](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid.html#apis-apiid-model-cors) nella Guida di riferimento delle API di Amazon API Gateway Versione 2.