用 js 做 URL 跳转带来的 Referer 丢失问题.
2016-10-19 16:20
411 查看
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();
}
但是如果用 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();
}
相关文章推荐
- 采用JS实现url跳转导致url丢失的问题
- IE中JS跳转丢失referrer问题的2个解决方法
- IE中JS跳转丢失referrer问题的2个解决方法
- js用 window.location.href跳转IE和chrome中路径url不一致问题
- IE中JS跳转丢失referrer问题的2个解决方法
- js跳转url携带参数和传递中文乱码问题
- Url带参跳转时,参数部分丢失问题
- webview 笔记二(android和js交互、包括链接跳转常见问题处理,加载监视,拦截Url等)
- 如何使用URL跳转解决Web服务80端口被封问题
- JS中URL传中文参数引发的乱码问题
- JS URL传中文参数引发的乱码问题
- JS提交请求url中存在中文的问题的一个解决方案
- window.location.reload()--解决JS页面跳转ie,firefox,opera不兼容问题
- js判断用户来路url(使用http header referer)
- servlet跳转页面导致css,js等失效的问题
- Js跳转不兼容问题
- referer丢失问题的小结--web analytics系列
- asp.net 解决js传递参数时,url汉字乱码的问题
- 如何使用URL跳转解决Web服务80端口被封问题?
- JS中URL传中文参数引发的乱码问题(转)