Я следовал руководству по адресу:
https://serverless.com/blog/cors-api-gateway-survival-guide/
Чтобы создать бэкэнд-сервис с помощью serverless, lambda, nodejs. Конечная точка работает правильно при тестировании с почтальоном.
Ниже заголовков запросов, как они установлены (я пытался включить все, чтобы выяснить проблему).
General:
Request Method: OPTIONS
Status Code: 400
Remote Address: xxx.xxx.xxx.xxx:443
Referrer Policy: no-referrer-when-downgrade
Response Headers:
access-control-allow-credentials: true
access-control-allow-headers: Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Access-Control-Allow-Origin, Access-Control-Allow-Credentials
access-control-allow-origin: *
content-length: 97
content-type: application/json
date: Fri, 08 Nov 2019 16:26:15 GMT
status: 400
via: 1.1 xxxxxxx.cloudfront.net (CloudFront)
x-amz-apigw-id: xxxxxxxx=
x-amz-cf-id: xxxxxx-EFTU2MF4k_TQ==
x-amz-cf-pop: xxxxx-C1
x-amzn-requestid: xxxxxxx-85a7-4d61-bf42-081944a4d307
x-amzn-trace-id: Root=1-xxxxxxx-37555e2ccf9ab35021c26f98;Sampled=0
x-cache: Error from cloudfront
Request headers
:authority: xxxxxx.execute-api.eu-west-1.amazonaws.com
:method: OPTIONS
:path: /stg/getConfigUrl
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,it;q=0.8
access-control-request-headers: access-control-allow-headers,access-control-allow-methods,access-control-allow-origin,content-type
access-control-request-method: POST
cache-control: no-cache
origin: http://0.0.0.0:8017
pragma: no-cache
referer: http://0.0.0.0:8017/
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 ....
Я думаюнеобходимые заголовки запроса предварительной проверки установлены. Я не понимаю эту ошибку. Что на самом деле означает, что «у него нет статуса HTTP ok»?
Попытка с почтальоном (тот же запрос) отвечает на HTTP 200 OK. Но вот через браузер кажется, что OPTION-запрос отвечает 400 ... почему? Как я могу это исправить?