S3 заблокирован политикой CORS

#amazon-web-services #amazon-s3 #cors #amazon-ebs

#amazon-web-services #amazon-s3 #cors #amazon-ebs

Вопрос:

Я развернул приложение React (интерфейс) на S3 и Laravel PHP API (серверную часть) через Elastic Beanstalk на AWS. В моем приложении react есть вызовы API на моем бэкэнде, но, к сожалению, они заблокированы CORS.

Доступ к XMLHttpRequest по адресу ‘http://platform-name-api.eu-central-1.elasticbeanstalk.com/api/v1/something » из источника «http://platform-name-web.s3-website.eu-central-1.amazonaws.com ‘ заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: заголовок ‘Access-Control-Allow-Origin’ отсутствует на запрошенном ресурсе.

Кто-нибудь знает, в чем проблема?

Ответ №1:

Заголовок HTTP-ответа Access-Control-Allow-Origin, упомянутый в сообщении об ошибке, является частью стандарта CORS, который позволяет предоставленному лицу явно предоставлять разрешение вашему сайту на доступ к данным через браузер.

Базовая реализация будет просто включать в себя:

Управление доступом-Разрешить-Источник: *

Заголовки ответов, позволяющие любому веб-сайту считывать данные.

Управление доступом-Разрешить-Источник: http://ExampleHelloWorld.com /

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

Чтобы решить эту проблему, конфигурация CORS должна быть включена для определенного сегмента, см. Этот документ

Обновленный ответ: (Если CORS отключен из API)

Когда браузер получает непростой HTTP-запрос, протокол CORS требует, чтобы браузер отправил предварительный запрос на сервер и дождался утверждения (или запроса учетных данных) с сервера перед отправкой фактического запроса. Предполетный запрос отображается в вашем API как HTTP-запрос, который

Необходимо убедиться, что сервер может прослушивать предполетный запрос

  • (какие будут ВАРИАНТЫ (а не GET, POST или что бы вы ни пытались отправить)
  • Ответьте на него правильным заголовком Access-Control-Allow-Origin, а также Access-Control-Allow-Methods
  • Access-Control-Allow-Headers для разрешения ваших конкретных HTTP-методов или заголовков

как упоминалось в этом документе

Комментарии:

1. Я не уверен, что это конфигурация корзины, но это похоже на конфигурацию API? Похоже, что он не отправляет правильные заголовки CORS в ответе API от » platform-name-api.eu-central-1.elasticbeanstalk.com/api/v1 /… «.

2. Да, я получил, потому что ошибка показывает «Ответ от предполетного запроса» и соответствующим образом обновил свой ответ. Спасибо, что упомянули об этом.