繁体   English   中英

S3 CORS 错误永无止境

[英]S3 CORS errors never end

我正在使用 S3 从 UI 上传图像。 我有一个带有访问密钥 ID/秘密访问密钥的 AMI,它只允许putObjectgetObject 所有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”标头。 因此,不允许访问 Origin ' https://foo.com '。 响应具有 HTTP 状态代码 403。

我显然允许正确的起源,所以我不知道为什么它一直对我大喊大叫。 但更糟糕的是,它有时会工作,然后即使在什么都没有改变之后又会停止工作......

使用 Chrome 浏览器。

更新

AWS 不允许将OPTIONS方法设置为允许的方法。 按照指南https://docs.aws.amazon.com/en_pv/AmazonS3/latest/dev/cors.html#how-do-i-enable-cors ,检查部分AllowedMethod Element


添加 CORS 配置中允许的OPTIONS方法。

预检请求使用 OPTION 方法来检查 CORS 允许使用哪些方法。

https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM