用 js 做 URL 跳转带来的 Referer 丢失问题.

本文探讨了HTTP 302重定向如何保持referer头信息,并对比了使用JavaScript进行页面跳转时的不同行为。特别是针对IE浏览器中referer丢失的问题提供了一种解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http 302 重定向是可以保持 referer 的。例:在 A 页面上提交登录表单到 B,B 返回一个重定向页面到 C,在 C 处理里面检查 Referer 可知道它的来源是 A 而不是 B。

但是如果用 window.location 或 document.location 做这个跳转就不一样了。假如在 A 页面上执行 window.location = B,如果是 IE 浏览器,会发现 B 页面的 Referer 为空。firefox 倒是可以保持 Referer,不过在 IE 占绝大部分市场份额的中国,必须想办法避免这个影响。

最后从网上找到这么一个解决方案:

function goTo(url) {

    var a = document.createElement("a");

    if(!a.click) { //only IE has this (at the moment);

        window.location = url;       

return

    }

    a.setAttribute("href", url);

   a.style.display = "none";

   document.body.appendChild(a)   

a.click();

}

转载于:https://www.cnblogs.com/zcm123/p/5977740.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值