如何调试SecurityError:阻止具有原点的帧访问跨源帧?

时间:2015-01-26 17:46:01

标签: javascript html iframe

我在主页面中有一个iframe。 iframe来自与主页面完全相同的域名。

主页面网址 - https://example.edu:4450/ ... iframe url - https://example.edu:4450/ ...

但是,当我点击iframe页面中执行某些javascript代码的某些按钮时,我仍然会收到交叉原始帧错误。为什么即使两个网址都位于同一个域中,也会发生这种情况?有没有办法找出导致此错误的确切跨域网址?警报消息不会显示导致此错误的跨域网址。

1 个答案:

答案 0 :(得分:2)

JavaScript控制台显示了错误的原因。

Uncaught SecurityError: Blocked a frame with origin "https://dev.nss.xxx.edu:4450" from accessing a frame with origin "https://dev.nss.xxx.edu:4450". The frame requesting access set "document.domain" to "nss.xxx.edu", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access.

主页面的document.domain设置为dev.nss.xxx.edu,iframe页面的document.domain设置为nss.xxx.edu

我将以下JavaScript代码添加到主页面以强制域为“nss.xxx.edu”并修复了错误。

document.domain = "nss.xxx.edu";