Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
CORS imposible en AWS Lambda HTTP API Gateway Integration

Se creó una función AWS Lamba (NodeJS) que devuelve 3 encabezados HTTP: aaa, Access-Control-Allow-Origin y bbb:

 exports.handler = async (event) => { const response = { statusCode: 200, headers: { "aaa":"aaa", "Access-Control-Allow-Origin":"*", "bbb":"bbb" }, body: JSON.stringify('Hello from Lambda!'), }; return response; };

La función está integrada en una API HTTP (no API REST). En la configuración de puerta de enlace API HTTP, sección "Configurar CORS", el encabezado HTTP "Access-Control-Allow-Origin" se estableció en "*". Por favor, vea la captura de pantalla:

Configuración de puerta de enlace

El comando "curl -i https://xxxxxxxxxx.execute-api.eu-central-1.amazonaws.com " prueba que el encabezado HTTP Access-Control-Allow-Origin se eliminó explícitamente, porque solo los encabezados HTTP aaa y bbb son devuelto:

 HTTP/2 200 date: Tue, 14 Apr 2020 11:01:58 GMT content-type: text/plain; charset=utf-8 content-length: 20 aaa: aaa bbb: bbb apigw-requestid: K-S2EjVWliAEJKw=

¿Por qué diablos este encabezado aún no está presente, incluso después de que se haya realizado "Configurar CORS"?

(Estoy buscando en Google durante más de dos días para encontrar una solución y me vuelve loco)

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Según la configuración de CORS para una API HTTP :

Si configura CORS para una API, API Gateway ignora los encabezados de CORS devueltos por su integración de back-end.

Es por eso que se ignoran los encabezados CORS de su Lambda (integración). Esta es una de las diferencias entre las nuevas API HTTP y las API REST originales. En el caso de estas API,

Para una solicitud de CORS, API Gateway agrega los encabezados de CORS configurados a la respuesta de una integración.

Cuando haces un rizo simple, eso no es realmente hacer una solicitud de origen cruzado. Por lo tanto, no ve los encabezados CORS que establecería la API HTTP. Para verificar si una solicitud de CORS funciona, pasé un encabezado de origen en la siguiente solicitud y puedo ver los encabezados de CORS junto con mis encabezados personalizados de Lambda:

 $ curl -v -X GET https://$API_ID.execute-api.$AWS_REGION.amazonaws.com -H "Origin: https://www.example.com" < HTTP/2 200 < date: Tue, 14 Apr 2020 18:02:26 GMT < content-type: text/plain; charset=utf-8 < content-length: 18 < aaa: aaa < bbb: bbb < access-control-allow-origin: https://www.example.com < access-control-expose-headers: date, x-api-id

A continuación se muestra un fragmento de mi configuración de CORS en la API. Agregué el valor Access-Control-Allow-Origin como https://www.example.com y pasé esto como parte del encabezado Origin en mi solicitud curl. Tal solicitud calificaría como CORS.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Para las solicitudes POST/PUT, deberá incluir en la lista blanca el encabezado content-type . Poner el comodín no funciona por alguna razón, debe incluirlo explícitamente en la lista blanca.

configuración apigw

over 4 years ago · Santiago Trujillo Denunciar

0

Para Googlers:

Si las comprobaciones previas de OPTIONS tienen éxito pero no hay encabezados de control Access-Control- presentes, y si está probando usando CURL, preste especial atención para deletrear los encabezados requeridos para una verificación previa:

  • Método de solicitud de control de acceso: GET
  • Access-Control-Request-Headers: autorización
  • Origen: https://theaws.blog

Si se escribe incorrectamente, OPTIONS tiene éxito con 204 No Content , pero sin encabezados Access-Control- lo que el resultado de la verificación previa no es válido.

También verifique que tenga suficiente alcance para los parámetros, siempre que el método solicitado y los encabezados sean un subconjunto del parámetro, obtendrá encabezados Access-Control- . Si no, obtendrá 204 No Content en su lugar, ¡lo cual diría que no es muy informativo!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda