[英]S3 CORS errors never end
我正在使用 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”标头。 因此,不允许访问 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.