我在domain.com
上托管一个文件,其中包含一个iframe,其文档托管在s3.domain.com
上。我正试图访问iframe的内容,但收到了以下内容:
不安全的JavaScript尝试访问具有URL的帧http://s3.domain.com.s3.amazonaws.com/file.html来自具有URL的帧http://domain.com/.域、协议和端口必须匹配。
我理解原因。我找到了两个变通办法。
- 由于我拥有这两个文档,我可以将域属性设置为允许访问,如下所示:
document.domain = 'domain.com';
- 使用CORS允许访问文档,该文档托管在S3存储桶中
我更愿意这样做,但我在这样做时遇到了困难。我的bucket的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>
然而,这仍然导致了错误。我确信我错过了什么,但不确定是什么。
如有任何建议,我们将不胜感激。谢谢
使用CORS浏览器通常会执行飞行前请求(OPTIONS
方法(。可能你也必须允许所有的标题,以确保正确的飞行前请求处理:
<AllowedHeader>*</AllowedHeader>
另请参见此处。