Получение ошибки: Access-Control-Allow-Headers в предпечатном ответе - PullRequest
0 голосов
/ 21 февраля 2019

enter image description here

Ошибка: поле заголовка запроса Access-Control-Allow-Origin не разрешено Access-Control-Allow-Headers в ответе предпечатной проверки.

Ошибка выше при нажатии на aws api с отключенным плагином cors в chrome.Когда cors включен, api возвращает правильный ответ.

Есть ли какой-либо механизм в javascript для получения ответа от api с отключенными cors в chrome?

Я добавил скриншоты моего запроса и заголовки ответа для справки

* Примечание. Cors включен на стороне сервера (шлюз API AWS)

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Поле заголовка запроса Access-Control-Allow-Origin не разрешено Access-Control-Allow-Headers в ответе перед полетом

Ну, это не так, мы можем видеть Access-Control-Allow-Origin не указан в заголовке ответа Access-Control-Allow-Headers на скриншоте.

Таким образом, у вас есть два варианта:

  1. Изменить заголовок ответа, чтобы разрешить его
  2. Во-первых, не отправляйте его с клиента

Поскольку Access-Control-Allow-Origin является заголовком ответа (ваш JS не может дать себе разрешение на чтение данных - это сделает CORS бессмысленным) вообще не имеет смысла отправлять его с клиента, правильный вариант 2.

Исправить код на стороне клиента.

0 голосов
/ 21 февраля 2019

Если вы используете Lambda с интеграциями прокси, вам нужно указать CORS Origin в своем HTTP-ответе.

Для интеграции Lambda или HTTP-прокси вы все равно можете установить требуемые заголовки ответа OPTIONSв шлюзе API.Однако вы должны полагаться на серверную часть для возврата заголовков Access-Control-Allow-Origin, поскольку ответ интеграции отключен для интеграции прокси.https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

Как в NodeJS:

var response = {
    statusCode: 200,
    headers: {
        "Access-Control-Allow-Origin" : "*"
    },
    body: JSON.stringify({
        someReturnData
    })
};
callback(null, response);
...