我通过 Amazon S3 托管一个静态网站,上面有一些 Javascript,可以调用另一个域并解析 XML、JSON 或它获得的任何内容。
我关注了 stackoverflow 上的许多帖子以及它链接到的各种博客帖子,这些帖子声称可以让它正常工作,但即使在非常密切地关注之后,我也永远无法复制结果。
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
我什至尝试在规则中添加和不添加以下内容,
<AllowedHeader>*</AllowedHeader>
以下链接允许您通过发送 XMLHttpRequests 来测试 CORS 是否已启用,但它表示它无效,因此 CORS 未正确设置或识别。
http://client.cors-api.appspot.com/client/
此处的 Amazon S3 文档中建议了一个可能的线索,
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETcors.html
也就是说我们需要设置“s3:GetCORSConfiguration”权限,这是我通过类似......的一行完成的
"操作": ["s3:GetObject", "s3:GetCORSConfiguration"],
在 AWS 控制面板的“编辑存储桶策略”部分中出现错误并且无法保存,因为它无法识别此操作?
这里有一篇关于 stackexchange 的可能相似的帖子,
似乎暗示如果我有一个托管在 S3 上的网站,它无法将其配置为生成 XMLHttpRequests,这些请求是 GET 到第 3 方资源?
我觉得自己在兜圈子……有人有任何线索/建议吗?谢谢。
最佳答案
您必须公开访问控制 header 。试试这个:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
<ExposeHeader>Access-Control-Allow-Methods</ExposeHeader>
</CORSRule>
关于javascript - Amazon S3 CORS 配置 XMLHttpRequest GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486486/