javascript - 如果 iframe 元素本身可见或不可见,iframe "see"内的页面是否可以跨域?

标签 javascript jquery security iframe cors

如果我从不同的域加载 iframe 中的页面,包含的页面是否可以查看 iframe 元素或其父元素是否可见(例如使用 jquery 的 is(':hidden'))?

我可以控制这两个域——我可以设置 CORS、属性等等。我尝试的一切仍然给了我这样的东西:

未捕获的安全错误:阻止来源为“http://s-college.mydomain.com”的框架访问来源为“http://qaf.ng.mydomain.com”的框架。协议(protocol)、域和端口必须匹配。

如果有帮助的话,基本域实际上是相同的,只是子域不同。

最佳答案

如果它们都位于同一高级域(例如 foo.example.combar.example.com),您可以设置 document.domain 在 JavaScript 中。

document.domain = 'example.com';

这将允许跨框架通信。

CORS 仅适用于(主要是 AJAX)请求,因此此处不适用。

以防万一其他人发现这个问题没有在同一更高级别的域中:如果它们位于不同的域中,您将需要使用 window.postMessage为了跨框架通信。

关于javascript - 如果 iframe 元素本身可见或不可见,iframe "see"内的页面是否可以跨域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27829624/

相关文章:

javascript - 更改 Ajax POST 的引荐来源网址

javascript - 使用 Angularjs 或 Jquery 重构 Json

javascript - 使用 AJAX + Javascript 分块读取文件

javascript - 确定是否加载更改的图像

javascript - 在 Js (JQuery) 中插入 PHP 变量

javascript - 关于 html DOM 事件的安全问题

security - 配置tomcat服务器转发请求到其他web服务器

java - SecureRandom 是否会降低伪随机数据的熵?

javascript - 这段代码在幕后发生了什么?

javascript - 将 JSON 对象发送到 Web 服务时 $.ajax 函数失败