Aunque CORS se configuró a través de API Gateway y el encabezado Access-Control-Allow-Origin está configurado, sigo recibiendo el siguiente error cuando intento llamar a la API desde AJAX dentro de Chrome:
XMLHttpRequest no puede cargar http://XXXXX.execute-api.us-west-2.amazonaws.com/beta/YYYYY . No hay ningún encabezado 'Access-Control-Allow-Origin' en el recurso solicitado. Por lo tanto, no se permite el acceso al origen 'null'. La respuesta tenía el código de estado HTTP 403.
Intenté OBTENER la URL a través de Postman y muestra que el encabezado anterior se pasó con éxito:
Y de la respuesta de OPCIONES:
¿Cómo puedo llamar a mi API desde el navegador sin volver a JSON-P?
Tengo el mismo problema. He usado 10 horas para averiguarlo.
https://serverless.com/framework/docs/providers/aws/events/apigateway/
// handler.js 'use strict'; module.exports.hello = function(event, context, callback) { const response = { statusCode: 200, headers: { "Access-Control-Allow-Origin" : "*", // Required for CORS support to work "Access-Control-Allow-Credentials" : true // Required for cookies, authorization headers with HTTPS }, body: JSON.stringify({ "message": "Hello World!" }) }; callback(null, response); };Si alguien más se encuentra con esto todavía, pude rastrear la causa raíz en mi aplicación.
Si está ejecutando API-Gateway con autorizadores personalizados, API-Gateway enviará un 401 o 403 antes de que llegue a su servidor. De manera predeterminada, API-Gateway NO está configurado para CORS al devolver 4xx desde un autorizador personalizado.
Además, si obtiene un código de estado de 0 o 1 de una solicitud que se ejecuta a través de API Gateway, este es probablemente su problema.
Para solucionarlo, en la configuración de API Gateway, vaya a "Respuestas de Gateway", expanda "Default 4XX" y agregue un encabezado de configuración de CORS allí. es decir
Access-Control-Allow-Origin: '*'Asegúrese de volver a implementar su puerta de enlace, ¡y listo!
Si ha intentado todo con respecto a este problema sin éxito, terminará donde yo lo hice. Resulta que las instrucciones de configuración de CORS existentes de Amazon funcionan bien... ¡solo asegúrese de recordar volver a implementar ! El asistente de edición de CORS, incluso con todas sus pequeñas marcas de verificación verdes, no realiza actualizaciones en vivo de su API. Quizás obvio, pero me dejó perplejo durante medio día.