【问题标题】:What is the HTTP Referer if the link is clicked in an <iframe>?如果在 <iframe> 中单击链接,那么 HTTP 引用者是什么?
【发布时间】:2012-01-18 02:15:16
【问题描述】:

假设我有一个位于http://www.website.com 的网页,其中包含&lt;iframe&gt;。像这样:

<html>
 <head>...</head>
 <body>
  ...
  <iframe src="http://www.washington.edu">
  ...
 </body>
</html>

现在假设有人访问 www.website.com 并单击 iframe 本身中的一个链接(该链接位于 www.washington.edu 网站上)。

我的问题是这种情况下的 HTTP 引用者是什么?

http://www.website.com(托管 iframe 的页面)还是http://www.washington.edu(点击链接的页面)?

【问题讨论】:

  • stackoverflow.com/questions/2324202/… 的副本。然而,有趣的是,IE6 将始终将 iframe 的父页面报告为引用者。
  • 好,IE6 不再支持。
  • 尝试为英国的大型公共部门组织或一些主要的蓝筹股工作:-(
  • 哦,是的,在浏览器中打开隐私模式将完全关闭此功能。
  • 请考虑将批准切换到我的答案@bodacydo。请参阅下面 muskratt 答案的讨论中的基本原理。

标签: html http iframe http-referer


【解决方案1】:

这取决于浏览器。

Firefox 和 Safari 会将引荐来源网址报告为 http://www.website.com,而某些版本的 Internet Explorer 会将 http://www.washington.edu 显示为引荐来源网址。

2015-04 更新:测试上述最新版本,所有这些都将返回 http://www.washington.edu

【讨论】:

  • 先生,我认为您的意思是相反的。我确信。无论如何我接受了你的回答。谢谢。
  • @GregDubicki 我不确定这应该是第 3 方编辑,因为它实际上完全颠倒了 OP 的回答。我认为最好保留作为评论。因此,我拒绝了您的编辑建议。如果您不同意,请随时在 Meta SO 上提问!
  • 对不起,我想我可能编辑过度了,因为“UPDATE”部分现在是正确的,但是之前的句子不正确。请与stackoverflow.com/questions/2324202/…stackoverflow.com/a/2324226/2693875stackoverflow.com/a/2822853/2693875比较。
  • 我已经添加了我自己的答案,正如 Meta 中所建议的那样。应该是正确的,我还添加了一些关于这个主题的最新发现。
【解决方案2】:

当前浏览器

截至 2015 年 8 月,所有主要浏览器(Safari、Chrome、Firefox)应该在这种情况下将 Referer HTTP 标头设置为 http://www.washington.edu


但是如果您的应用程序严重依赖 Referer 值,我鼓励您测试特定浏览器版本在特定情况下的行为。

我写这个是因为例如我发现 Safari 8 当前使用不正确的 Referer 请求 iframe 中加载的 JavaScript,可能是如果之前使用不同的 Referer 请求了此 JavaScript。这是一个类似于 this particular one 的错误,该错误仅在 2014 年在 Chromium 中关闭。(顺便说一句,我已经向 Apple 报告了它。)

旧浏览器

历史上Internet Explorer 6 showed different behaviour than described above - 它将Referer HTTP 标头设置为http://www.website.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2011-08-06
    • 2010-09-28
    • 1970-01-01
    • 2017-05-23
    • 2011-04-04
    相关资源
    最近更新 更多