试图访问iframe内容(不同的子域名);尝试设置CORS

时间:2013-01-15 17:57:38

标签: security iframe amazon-s3 cross-domain cors

我正在domain.com托管一个文件,其中包含一个iframe,其文档托管在s3.domain.com上。我试图访问iframe的内容,但是收到以下内容:

  

不安全的JavaScript尝试从包含网址http://s3.domain.com.s3.amazonaws.com/file.html的网址访问包含网址http://domain.com/的框架。域,协议和端口必须匹配。

我理解这个的原因。我找到了两个工作。

  1. 由于我拥有这两个文档,因此我可以将domain属性设置为允许访问,如下所示:document.domain = 'domain.com';
  2. 使用CORS允许访问托管在S3存储桶中的文档
  3. 我更愿意这样做,但是我很难这样做。 我的桶的CORS配置文件目前如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        <CORSRule>
            <AllowedOrigin>*</AllowedOrigin>
            <AllowedMethod>GET</AllowedMethod>
        </CORSRule>
    </CORSConfiguration>
    

    然而,这仍然导致错误。我确定我错过了什么,但不确定是什么。

    任何建议都将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:2)

使用CORS浏览器通常会执行预检请求(OPTIONS方法)。可能您还必须允许所有标题以确保正确的预检请求处理:

<AllowedHeader>*</AllowedHeader>

另见here