Ошибка доступа к CORS для метода PUT, API-интерфейс на aws размещен на эластичном бобовом стебле - PullRequest
0 голосов
/ 07 февраля 2019

Я развернул API на AWS API Gateway с использованием пользовательской интеграции http

Я включил CORS, как показано ниже:

enabled cors

Для обоих GETи методы PUT, я получаю следующую ошибку: «URL-адрес источника [мой источник] был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок« Access-Control-Allow-Origin »»

Код:

 fetch(url, {
  method: 'POST', 
  mode: "cors",
  headers: {
    'Content-Type': 'application/json',
    'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token' //copied from screenshot above 
  },
  body: JSON.stringify(data)
})
.then(response => console.log('Success:', response))
.catch(error => console.error('Error:', error));
}

1 Ответ

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

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

Защищен ли ваш метод API Gateway Lambda Authorizer или настроен на использование ключа API?Если это так, запрос может быть отклонен одним из них, и ответ не будет содержать заголовок Access-Control-Allow-Origin, поэтому проверка браузера перед проверкой будет неудачной.

Вам также необходимо проверить, какой ответ возвращается интеграцией метода API.В случае Proxy Lambda ответ должен содержать заголовок Access-Control-Allow-Origin.

Ознакомьтесь с документацией по ответу на интеграцию .

...