Как включить CORS в AWS API Gateway - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь включить 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

1 Ответ

0 голосов
/ 03 мая 2020

Проблема в том, что я неправильно отправлял данные из своего пользовательского интерфейса, поэтому проверка модели не прошла. После того, как я отключил проверку тела, он начал работать правильно.

См. Этот вопрос: AWS API-шлюз - CORS + POST не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...