【问题标题】:Get the top-level domain of a page containing an iframe获取包含 iframe 的页面的顶级域
【发布时间】:2014-06-10 04:33:28
【问题描述】:

我想允许 iframe 从服务器请求新数据(通过 ajax),前提是 iframe 嵌入到特定页面中。 如何在 iframe 中获取顶级域?

起初我认为安全性会很容易,在我的服务器上我可以简单地检查http_referrer,这是每个 HTTP 请求发送的标准内容。

但后来我意识到这个 http_referrer 实际上是我的 iframe 的域,而不是包含 iframe 的域!因此,如果我在 my_site.com 中嵌入了 my_iframe.com,则 http_referrer 为 my_iframe.com,这无法帮助我知道是谁在嵌入该页面。

所以现在我正在追求这个替代方案。

【问题讨论】:

  • 答案只是从 iframe 执行document.referrer。这给出了包含窗口,无论它是否是相同的来源。

标签: javascript iframe


【解决方案1】:

您可以使用window.top 访问最顶部的窗口并使用普通的location 对象,但是如果尝试从 iframe 中访问外部域,您将遇到有关同源策略的问题,我建议你check this community post关于same-origin policy

window.top.location.href
window.top.location.host

【讨论】:

    【解决方案2】:
    try {
        alert(window.top.location.origin);
    } catch(e) {
        console.log(e.message);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 2019-03-23
      • 2015-07-19
      • 1970-01-01
      • 2015-05-21
      相关资源
      最近更新 更多