我正在尝试在S3存储桶上启用CORS。这是我的CORS配置:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
如果我尝试访问我的存储桶中的任何文件,服务器将使用403响应以下内容:
<Error>
<script/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>A0DDB22DAA8FEB96</RequestId>
<HostId>
wamh2M0Q2rfW2RAXdnJThqeWxVSxd2P2VVq0izvwipp2JATIipMc9CvAs9Qe+2iC
</HostId>
</Error>
如果删除CORS配置,一切正常。我错过了什么?
答案 0 :(得分:2)
这可能是因为您没有明确指定通过CORS进行呼叫时通常在飞行前请求中发送的允许标头。
理想情况下,您还需要指定浏览器缓存这些转发前请求的最长时间。尝试修改您的CORS配置以包含以下信息:
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>