Я пытаюсь включить CORS с помощью шлюза API Amazon и Lambda, но постоянно получаю сообщение об ошибке.
Access to XMLHttpRequest at 'https://<url>' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я следовал https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html и добавил это к лямбда-выражению:
statusCode : statusCode,
body: responseBody,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
"Access-Control-Allow-Headers": "Content-Type",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
}
Я также пошел к шлюз API и нажал кнопку включения CORS. Если я посмотрю на OPTIONS в шлюзе API, то будет сказано, что Access-Control-Allow-Headers
присутствует
Если я запустил тестирование на шлюзе API, я смогу увидеть заголовки, возвращаемые лямбда-выражением, и все ожидаемые заголовки все там. , но я все еще получаю то же сообщение об ошибке.
edit: Logwatch ничего не печатает, поэтому я предполагаю, что он даже не доходит до моей лямбда-функции.
Я могу ударил API успешно из POSTMAN, и он имеет заголовки CORS
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: OPTIONS,POST,GET
Вот заголовки ответов, которые я получаю при попытке ввести chrome.
content-length: 35
content-type: application/json
date: Sun, 03 May 2020 01:51:15 GMT
status: 400
x-amz-apigw-id: L7p_IEbuoAMFeaA=
x-amzn-errortype: BadRequestException
x-amzn-requestid: 7ed06b7d-951f-4774-9bfa-62f307ee5974