如果使用location.href =重定向到新网页,是否设置了REFERER?

时间:2011-04-14 01:21:48

标签: javascript http referer

如果您使用javascript location.href = <url>将用户重定向到新网页,目标网络服务器会看到哪些REFERER标头?

3 个答案:

答案 0 :(得分:8)

除了一些例外情况,发送的标头是包含重定向的页面,而不是执行重定向的页面的引用者。这与服务器端重定向形成对比,服务器端重定向保留了原始引用者。

因此,如果访问者从A.html转到B.html,而B.html触发location.href重定向到C.html,则网络服务器会看到{{ 1}}作为推荐人。 (如果您在服务器端从B.html重定向到B.html,则C.html将成为A.html的推荐人。)

较旧版本的Internet Explorer会发送一个空白标题,并且(一如既往)将重定向从HTTPS重定向到HTTP。

答案 1 :(得分:2)

它会看到它来自的页面,就像点击链接一样。

要从任何页面测试此内容,请重定向到phpinfo()页面或任何其他回显标题的页面,例如:

window.location='http://hosting.iptcom.net/phpinfo.php';

(从随机谷歌搜索中提取的页面)

答案 2 :(得分:2)

大多数浏览器会使用location.href传递HTTP_REFFERER,但在某些情况下IE不会。

如果参与者对你很重要,那么你可以这样做:

function goTo(url) {
 var a = document.createElement("a");
 if(!a.click) { //Only IE has .click so if it doesnt exist use the simple method where the refferer is passed on other browsers.
  location.href = url;
  return;
 }
 a.setAttribute("href", url);
 a.style.display = "none";
 (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(a);
 a.click();
}