5

我在 A.com 上有一个站点,在 B.com 上有一个 iframe,它从 A.com 调用 javascript。这在 FF 中效果很好。在 IE7 / 8 我得到一个

Message: Access is denied.

信息。我已经通过 Fiddler 检查了 HTTP 流量 - 我可以看到它没有在 Fiddler 中被阻止?

有什么想法可能导致这种情况以及如何解决?

4

2 回答 2

4

如果两个页面都在您的控制之下(即它们属于您并且您可以更改代码),请尝试以下操作 -

http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/

像这样设置 document.domain:

<script type="text/javascript">
document.domain = 'tomhoppe.com';
</script> 
于 2010-07-22T18:59:29.390 回答
2

只要 IFrame 是“同源”的,它们就可以进行通信 - 所以相同的域和相同的协议。如果它们的来源不同,则通信会被阻止。

HTML5 引入了一种新的通信机制。可能值得一看http://www.w3.org/TR/webmessaging/

http://en.wikipedia.org/wiki/Cross-document_messaging

安全隐患也值得一读

https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Web_Messaging

于 2013-02-22T09:49:37.673 回答