Amazon AWS веб-сервер перекрестного происхождения запросов - PullRequest
0 голосов
/ 01 мая 2018

В настоящее время я пытаюсь создать веб-сайт на AWS EC2, используя node.js и mongoDB. Пока что я могу без проблем запустить сервер узлов и службу mongod. Сетевые ACL-списки также настроены так, чтобы разрешить доступ с моего компьютера, и у меня нет проблем получить к нему доступ с помощью Chrome или Firefox. Однако некоторые из моих запросов get не отвечают, и я получаю это сообщение об ошибке на моей консоли chrome:

Не удалось загрузить ec2-54-173-21-43.compute-1.amazonaws.com:3001: Запросы между источниками поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https.

Я посмотрел на SO и обнаружил, что кто-то упоминал о настройке сегментов AWS S3 для совместного использования ресурсов из разных источников. Я перешел по этой ссылке: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html

Пока что, используя ссылку в качестве руководства и используя XML-код в этом руководстве https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

не был плодотворным, я все еще получаю эту ошибку. Может ли кто-нибудь указать мне правильное направление? Пример XML-кода, который я использовал для XML-документа, приведен здесь:

<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.example1.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>http://www.example2.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>

1 Ответ

0 голосов
/ 01 мая 2018

Не удалось загрузить ec2-54-173-21-43.compute-1.amazonaws.com:3001: Запросы между источниками поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https.

Это означает, что вы не делаете HTTP-запрос.

Разумно сделать вывод, что когда вы писали URL-адрес в своем клиентском JavaScript, вы опускали схему в начале (https:// например).

Следовательно, вы пытаетесь отправить запрос в локальную файловую систему (поскольку именно здесь вы загружаете HTML-документ, содержащий JavaScript).

Конфигурация CORS вашей службы AWS не имеет отношения к этой конкретной проблеме, поскольку ваш код не пытается связаться с этой службой.

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