当我试图从有趣的东西遇到的外部资源中检索一些数据时。当我在我自己的网站上使用它时,它的工作正确,但是使用外部资源却没有。
doc = parent.Frame2.document;
alert(doc);
Frame2
的来源是此脚本执行的网站的主页,我收到消息“对象HTML文档”
但是当我将源更改为另一个时,例如
是的:<frame name='Frame2' src="mysite.com'>
我把它改成了如:
<frame name="Frame2" src="http://cnn.com"/>
得到"undefined"
。这是为什么?任何人都可以解释一下吗?
我还尝试了contentDocument
和windowDocument
因为它在一堆类似的东西中被描述了
问题,但仍然没有运气。我只是初学者,我希望有人会向我解释或者建议我可以用其他方法在这件事上取得成功,我也希望有人能发现它有用。
谢谢大家!
答案 0 :(得分:0)
您遇到了same-origin policy。
这是一项安全功能,可防止恶意网站访问其他网站的私人数据,并适用于XMLHttpRequest以及<iframe>
。
获得成功的方法是使用您的服务器通过某些脚本代理页面,或设置CORS。
CORS主要适用于 XMLHttpRequest (我认为浏览器会在<iframe>
s中忽略它)并要求您控制服务器发送的HTTP标头,以便从中检索数据,就像您一样需要发送一个特定的标题,允许您的网站(或所有网站通过通配符*
)。