Configuración de CORS de las API de HTTP en API Gateway
El uso compartido de recursos entre orígenes (CORS)Cross-Origin Request Blocked
, es posible que deba habilitar CORS. Para obtener más información, consulte ¿Qué es el CORS?
Por lo general, se necesita CORS para crear aplicaciones web que acceden a las API alojadas en un dominio u origen distinto. Puede habilitar CORS para permitir las solicitudes a la API desde una aplicación web alojada en un dominio distinto. Por ejemplo, si la API está alojada en https://{api_id}.execute-api.{region}.amazonaws.com/
y desea llamar a la API desde una aplicación web alojada en example.com
, la API debe ser compatible con CORS.
Si configura CORS para una API, API Gateway envía automáticamente una respuesta a las solicitudes OPTIONS preliminares, incluso si no hay ninguna ruta OPTIONS configurada para la API. En una solicitud de CORS, API Gateway agrega los encabezados de CORS configurados a la respuesta de una integración.
nota
Si configura CORS para una API, API Gateway ignora los encabezados de CORS devueltos por su integración de backend.
Puede especificar los siguientes parámetros en una configuración de CORS. Para agregar estos parámetros mediante la consola de API HTTP de API Gateway, seleccione Agregar después de ingresar el valor.
Encabezados de CORS | Propiedad de configuración de CORS | Valores de ejemplo |
---|---|---|
Access-Control-Allow-Origin |
allowOrigins |
|
Access-Control-Allow-Credentials |
allowCredentials |
true |
Access-Control-Expose-Headers |
exposeHeaders |
Fecha, x-api-id, * |
Access-Control-Max-Age |
maxAge |
300 |
Access-Control-Allow-Methods |
allowMethods |
GET, POST, DELETE, * |
Access-Control-Allow-Headers |
allowHeaders |
Autorización, * |
Para devolver encabezados de CORS, la solicitud debe contener un encabezado origin
. Para el método OPTIONS
, la solicitud debe contener los encabezados origin
y Access-Control-Request-Method
.
Es posible que la configuración de CORS sea similar a lo siguiente:
Configuración de CORS para una API HTTP con una ruta $default
y un autorizador
Puede habilitar CORS y configurar la autorización para cualquier ruta de una API HTTP. Cuando habilita CORS y la autorización para la ruta $default
, hay que tener en cuenta algunas consideraciones especiales. La ruta $default
captura las solicitudes de todos los métodos y rutas que no haya definido explícitamente, incluidas las solicitudes OPTIONS
. Para admitir las solicitudes de OPTIONS
no autorizadas, agregue una ruta de OPTIONS /{proxy+}
a la API que no requiera autorización y asocie una integración a la ruta. La ruta OPTIONS /{proxy+}
tiene mayor prioridad que la ruta $default
. Como resultado, permite a los clientes enviar solicitudes OPTIONS
a su API sin autorización. Para obtener más información acerca de las prioridades de enrutamiento, consulte Enrutamiento de solicitudes de la API.
Configuración de CORS para una API HTTP mediante la AWS CLI
Puede utilizar el siguiente comando update-api para habilitar las solicitudes de CORS de https://www.example.com
.
aws apigatewayv2 update-api --api-id
api-id
--cors-configuration AllowOrigins="https://www.example.com"
Para obtener más información, consulte CORS en la Referencia de la API de Amazon API Gateway Versión 2.