【发布时间】:2018-07-07 08:26:03
【问题描述】:
我正在使用 S3 从 UI 上传图像。我有一个带有访问密钥 ID/秘密访问密钥的 AMI,它只允许 putObject 和 getObject。所有putObject 都使用public-read acl 调用。
我在 S3 存储桶中有这个 CORS 配置:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>https://foo.com</AllowedOrigin>
<AllowedOrigin>http://localhost:5000</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
我不断收到这些 CORS 错误:
XMLHttpRequest 无法加载 https://foo.s3.amazonaws.com/items/images/e75768-2018-0-26/roar-bomber.png。 对预检请求的响应未通过访问控制检查:否 'Access-Control-Allow-Origin' 标头出现在请求的 资源。因此不允许使用原点“https://foo.com” 使用权。响应的 HTTP 状态代码为 403。
我显然允许正确的起源,所以我不知道为什么它一直对我大喊大叫。但更糟糕的是,它有时会起作用,然后即使没有任何改变也会再次停止工作......
使用 Chrome 浏览器。
【问题讨论】:
-
您的配置中缺少 OPTION 方法。
标签: javascript amazon-web-services amazon-s3 cors