Javascript 获取跨域HTTPS iFrame的父文档来源

Javascript 获取跨域HTTPS iFrame的父文档来源,javascript,iframe,cross-domain,postmessage,Javascript,Iframe,Cross Domain,Postmessage,我想从iFrame内部读取window.top.location.origin。 父级和iFrame位于不同的HTTPS域上。 例如,尝试访问会在Chrome中引发安全错误。 [DOMEException:阻止原点为“…”的帧访问跨原点帧。] 是否有可能在不触发错误的情况下执行此操作 我需要窗口。top的来源,因为我基于该来源发送不同的postmessage。由于相同的来源策略,来自不同来源的iframe中的JavaScript将无法与其父框架通信。如果您有权访问为iframe提供服务的服务器,

我想从iFrame内部读取
window.top.location.origin

父级和iFrame位于不同的HTTPS域上。
例如,尝试访问会在Chrome中引发安全错误。
[DOMEException:阻止原点为“…”的帧访问跨原点帧。]

是否有可能在不触发错误的情况下执行此操作


我需要
窗口。top
的来源,因为我基于该来源发送不同的postmessage。

由于相同的来源策略,来自不同来源的iframe中的JavaScript将无法与其父框架通信。如果您有权访问为iframe提供服务的服务器,则可以启用CORS,否则我认为您运气不好

因为同一来源策略,来自不同来源的iframe中的JavaScript将无法与其父框架通信。如果您有权访问为iframe提供服务的服务器,则可以启用CORS,否则我认为您运气不好

我知道这很旧,但可能对其他人有帮助:

完整的父URL将作为
文档出现在
中。referer
。有了它,您可以在本地解析它,以找到您可能需要的URL细节

if (document.referrer !== location.href) {
  let foo = document.createElement('a');
  foo.href = document.referrer;
  console.log('origin is:', foo.origin);
}

当然,这要归功于锚标记的内置解析。隐藏的宝石~

我知道这很古老,但可能对其他人有帮助:

完整的父URL将作为
文档出现在
中。referer
。有了它,您可以在本地解析它,以找到您可能需要的URL细节

if (document.referrer !== location.href) {
  let foo = document.createElement('a');
  foo.href = document.referrer;
  console.log('origin is:', foo.origin);
}

当然,这要归功于锚标记的内置解析。隐藏的宝石~

您在控制台中遇到什么类型的错误?我将更新问题。您需要从父级获取消息,然后您可以从消息属性中查看来源。这就像回复一封你以前没有地址的电子邮件。是的,我知道。但我正试着从孩子身上开始沟通。e、 g.“我已加载并准备侦听事件”您在控制台中遇到了什么类型的错误?我将更新问题。您需要从父级获取消息,然后您可以从消息属性中查看来源。这就像回复一封你以前没有地址的电子邮件。是的,我知道。但我正试着从孩子身上开始沟通。e、 g.“我已经准备好倾听事件了”这不是真的。您可以使用
postMessage
进行通信。然而,我的问题是关于获取父iFrame的域。这不是真的。您可以使用
postMessage
进行通信。但是,我的问题是如何获取父iFrame的域。