亚马逊 AWS 网络服务器跨源请求

Amazon AWS Webserver Cross Origin Requests

我目前正在尝试使用 node.js 和 mongoDB 在 AWS EC2 上建立一个网站。到目前为止,我可以毫无问题地启动节点服务器和mongod服务。网络 ACL 也配置为允许从我的 PC 进行访问,我使用 chrome 或 firefox 访问它没有任何问题。但是,我的一些 get 请求没有得到答复,我在 chrome 控制台上收到此错误消息:

无法加载 ec2-54-173-21-43.compute-1.amazonaws.com:3001:跨源请求仅支持协议方案:http、数据、chrome、 chrome-扩展名,https。

我查看了 SO,发现有人提到配置 AWS S3 存储桶以允许跨源资源共享。我遵循了这个 link: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html

到目前为止,使用 link 作为指南并使用 this 指南中的 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>

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 请求。

可以合理推断,当您在客户端JavaScript中编写URL时,您省略了它前面的方案(例如https://)。

因此,您正在尝试向您的本地文件系统发出请求(因为这是您从中加载 HTML 托管 JavaScript 文档的地方)。

您的 AWS 服务的 CORS 配置与这个特定问题无关,因为您的代码没有尝试联系该服务。