5

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

不安全的 JavaScript 尝试从 URL http://domain.com/的框架访问具有 URL http://s3.domain.com.s3.amazonaws.com/file.html的框架。域、协议和端口必须匹配。

我明白这其中的原因。我找到了两个解决方法。

  1. 由于我拥有这两个文档,因此我可以将域属性设置为允许访问,如下所示:document.domain = 'domain.com';
  2. 使用 CORS 允许访问托管在 S3 存储桶中的文档

我更愿意这样做,但是这样做有困难。我的存储桶的 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>

但是,这仍然会导致错误。我确定我错过了一些东西,但不确定是什么。

任何意见,将不胜感激。谢谢。

4

1 回答 1

2

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

<AllowedHeader>*</AllowedHeader>

另请参见此处

于 2013-01-15T18:13:09.193 回答