В настоящее время я пытаюсь создать веб-сайт на AWS EC2, используя node.js и mongoDB. Пока что я могу запустить сервер узла и службу mongod без проблем. Сетевые списки ACL также настроены так, чтобы разрешить доступ с моего ПК, и у меня нет проблем с доступом к нему с помощью Chrome или Firefox. Однако некоторые из моих запросов на получение не получают ответа, и я получаю это сообщение об ошибке на своей консоли 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>
Это пример кода, представленный во второй ссылке Amazon, следует ли мне как-то его отредактировать? Почему это не так?
Нет, это не так, посмотрите еще раз, вам нужно закрыть теги, я думаю, вы неправильно скопировали / вставили
Я его отредактировал ... У меня такое чувство, что что-то не хватает на консоли AWS S3 CORS
Failed to load ec2-54-173-21-43.compute-1.amazonaws.com:3001: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Это означает, что вы не делаете HTTP-запрос.
Разумно предположить, что при написании URL-адреса в клиентском JavaScript вы пропустили схему в начале (например, https://
).
Следовательно, вы пытаетесь сделать запрос в свою локальную файловую систему (поскольку именно отсюда вы загружаете HTML-документ, содержащий JavaScript).
Конфигурация CORS вашего сервиса AWS не имеет отношения к этой конкретной проблеме, потому что ваш код не пытается связаться с этой службой.
В моем js-файле на стороне клиента он определен как const url = 'mongodb: // localhost: 27017'; На моей стороне сервера js он определен как: url = 'локальный: 3001'; Я отредактировал клиентскую часть, и она сработала, но выдала новую ошибку: «Ответ на предполетный запрос не проходит проверку контроля доступа: на запрошенном ресурсе нет заголовка« Access-Control-Allow-Origin »» Я открою новый ТАК вопрос для этого TY
это недействительный XML