我通过Amazon S3托管一个静态网站,我在那里有一些Javascript,它将调用另一个域并解析XML,JSON或其他任何东西.
我跟踪了stackoverflow上的很多帖子以及与之相关的各种博客帖子,声称它可以使其正常工作,但即使在非常密切地关注后,我也无法复制结果.
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
Run Code Online (Sandbox Code Playgroud)
我甚至尝试添加有和没有以下规则,
<AllowedHeader>*</AllowedHeader>
Run Code Online (Sandbox Code Playgroud)
以下链接允许您通过发送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的帖子,
来自jquery或XMLHttpRequest的HTTP GET到amazon aws失败,Access-Control-Allow-Origin不允许使用Origin
似乎建议如果我有一个托管在S3上的网站,它无法配置它来制作GET到第三方资源的XMLHttpRequests?
我觉得我要去圈子......那里有人有任何线索/建议吗?谢谢.
我正在尝试编辑我的 S3 存储桶配置,以便第 3 方站点无法链接到其中的内容。还有一个额外的好处是他们只能访问我域中的内容,而不是补充 s3bucket.amazon-east.amazonaws.com 或类似的东西。
该文档有一个完全适用于此的示例,但是当我在下面为我的网站复制/粘贴/修改时它不起作用?我仍然收到 403 错误。当我只取出条件部分时,它允许完全访问,所以只有引用部分有问题。
这是一段如此短的代码,我正在用头撞墙……希望第二组眼睛可以启发我了解我遗漏的可能很明显的东西?
或者,这可能没有任何问题,并且其他地方可能还有我尚未设置/考虑的其他配置?
谢谢阅读。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "fml",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::www.mysite.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://mysite.com/*",
"http://www.mysite.com/*"
]
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)