2011-12-11 163 views
19

假设我有一个网页位于http://www.website.com,其中。就像这样:什么是HTTP Referer如果在<iframe>中点击链接?

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

现在假设有人去www.website.com并单击在iframe本身(此链接位于www.washington.edu网站)的链接。

我的问题是在这种情况下HTTP Referer是什么?

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

+0

http://stackoverflow.com/questions/2324202/javascript-iframe-link-referrer的副本。但有趣的是,IE6将始终将iframe的父页面报告为引用者。 – dash

+1

不再支持IE6。 – bodacydo

+0

尝试在英国的大型公共部门组织或一些主要蓝筹股工作:-( – dash

回答

11

这取决于浏览器。

Firefox和Safari将报告引用者为http://www.website.com,而某些版本的Internet Explorer将显示http://www.washington.edu作为引用者。

UPDATE 2015-04:测试的上述最新版本所提到的,所有的人都将返回http://www.washington.edu

+0

先生,我认为你的意思是相反的,我确定,我仍然接受你的答案,谢谢 – bodacydo

+0

你是对的,bodacydo 。我纠正了答案 –

+0

@GregDubicki我不确定这应该是第三方编辑,因为它实际上完全颠倒了OP的答案,我认为最好留下来作为评论。拒绝你的编辑建议,如果你不同意,可以在Meta SO上自由地提问。 – TylerH

6

当前浏览器

随着2015年8月所有的主流浏览器(Safari浏览器,Chrome浏览器,火狐)的在这种情况下,请将Referer HTTP标头设置为http://www.washington.edu


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

我写这个是因为例如我发现Safari 8目前对iframe中加载的JavaScript发出的请求不正确Referer,可能如果此JavaScript先前被请求过不同的Referer。这是一个很类似于this particular one这是在Chromium仅在2014年(我已经报告给苹果,顺便说一句。)

旧的浏览器

历史Internet Explorer 6 showed different behaviour than described above关闭的错误 - 这将设置Referer HTTP标头http://www.website.com