如何解决如果您使用location.href =重定向到新网页,是否设置了REFERER?
| 如果使用javascriptlocation.href = <url>
将用户重定向到新网页,目标Web服务器会看到什么REFERER标头?
解决方法
它会看到它来自的页面,就像单击链接一样。
要从任何页面进行测试,请重定向到phpinfo()页面或任何其他回显标头的页面,例如:
window.location=\'http://hosting.iptcom.net/phpinfo.php\';
(从随机Google搜索中拉出的页面)
,除某些例外,发送的标头是带有重定向的页面的标题,而不是执行重定向的页面的引荐来源。这与保留原始引荐来源网址的服务器端重定向相反。
因此,如果访问者从A.html
转到B.html
,并且B.html
触发了location.href
重定向到C.html
,则Web服务器会将B.html
视为引荐来源。 (如果在服务器端从B.html
重定向到C.html
,则A.html
将成为C.html
的引荐来源。)
较旧版本的Internet Explorer将发送空白标头,因为(一如既往)从HTTPS重定向到HTTP。
,大多数浏览器将传递带有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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。