Javascript 如果使用location.href=重定向到新网页,是否设置了REFERER?
如果使用javascriptJavascript 如果使用location.href=重定向到新网页,是否设置了REFERER?,javascript,http,referer,Javascript,Http,Referer,如果使用javascriptlocation.href=将用户重定向到新网页,目标web服务器会看到什么REFERER标头?除了一些例外,发送的标头是带有重定向的网页的标头,而不是执行重定向的网页的REFERER。这与服务器端重定向形成对比,服务器端重定向保留了原始引用 因此,如果访问者从a.html转到B.html,并且B.html触发location.href重定向到C.html,web服务器将看到B.html作为引用者。(如果您在服务器端执行了从B.html到C.html的重定向,A.ht
location.href=
将用户重定向到新网页,目标web服务器会看到什么REFERER标头?除了一些例外,发送的标头是带有重定向的网页的标头,而不是执行重定向的网页的REFERER。这与服务器端重定向形成对比,服务器端重定向保留了原始引用
因此,如果访问者从a.html
转到B.html
,并且B.html
触发location.href
重定向到C.html
,web服务器将看到B.html
作为引用者。(如果您在服务器端执行了从B.html
到C.html
的重定向,A.html
将是C.html
的参考)
旧版本的将发送一个空白标题,就像(一如既往)从HTTPS重定向到HTTP一样。它会看到它来自的页面,就像单击链接一样 要从任何页面进行测试,请重定向到phpinfo()页面或任何其他回显标题的页面,例如:
window.location='http://hosting.iptcom.net/phpinfo.php';
(从随机谷歌搜索中提取的页面)大多数浏览器都会通过带有location.href的HTTP\u 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();
}
对不起,你能澄清一下你所说的“事先推荐人”是什么意思吗?