文档章节

解决js下跳转无referer的方法

疯狂的小黑
 疯狂的小黑
发布于 2016/09/21 12:46
字数 418
阅读 158
收藏 0

HTTP Header referer这玩意主要是告诉人们我是从哪儿来的,就是告诉人家我是从哪个页面过来的,可以用于统计访问本网站的用户来源,也可以用来防盗链。获取这个东西最好的方式是js,如果在服务器端获取(PHP方法如:$_SERVER['HTTP_REFERER']) 不靠谱,人家可以伪造,用js获取最好,人家很难伪造,

方法:利用js的 document.referer 方法可以准确地判断网页的真实来路。 目前百度统计,google ads统计,CNZZ统计,都是用的这个方法。防盗链也很简单了,js里判断来路url如果不是本站不显示图片。

众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:

在IE中用javascript做跳转,比如用window.location.href = “”; google如果使用document.referrer无法取到浏览器请求的HTTP referrer,因为IE清空了

而其他主流浏览器Firefox和Chrome都会保留referrer,没办法,这意味着IE又要享受“部长级”特殊待遇了:

以下代码可以解决ie的这个问题:

//检测如果是ie浏览器,则手动的给增加一个referer

这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了。

 

var url = 'http://www.92csz.com';   

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || /MSIE(\d+\.\d+);/.test(navigator.userAgent))   

{   

    var referLink = document.createElement('a');   

    referLink.href = url;   

    document.body.appendChild(referLink);   

    referLink.click();   

}   

else  

{   

    location.href = url;   

}   

感谢观看 兄弟连教育 分享

© 著作权归作者所有

疯狂的小黑
粉丝 3
博文 96
码字总数 80472
作品 0
东城
程序员
私信 提问
ie下面出现Notice: Undefined index: HTTP_REFERER 的解决办法

一:问题出现 发现这一问题是在一次开发当中做了一个跳转在FF下面能正常跳转,最后将项目传到线上之后,测试的却告诉我在IE下面不能跳转,我开始还不相信,后来一测试,果真如此,经过最终的...

phping
2013/04/26
0
0
JS 返回上一步(退回上一步上一个网页)

链接式: <a href="javascript:history.go(-1)">返回上一步</a> <a href="<%=Request.ServerVariables("HTTP_REFERER")%>">返回上一步</a> 按钮式: <INPUT name="pclog" type="button" valu......

Carl_
2014/08/04
0
0
java web系统防越权,就是可以直接在地址栏输入打开没有授权的页面。或者一个网站的所有链接如何爬取,并保存跳转的关系

大家好,我说一下问题和我的想法。 这是运行5年的系统了,只兼容IE,几乎不能通过重构来实现,所以写个过滤器filter应该是最简单的方案。 因为数据库只描了菜单界面(通过菜单打开的界面)的...

明日之春
2016/07/23
962
3
javascript页面跳转常用代码

这东东最难记,每次需要时都是重新到Google上搜,真是烦死了,这回整理一下贴到这。 按钮式: 链接式: 返回上一步 ">返回上一步 直接跳转式: 开新窗口: 云上的日子 原文链接:http://blog...

晨曦之光
2012/03/09
27
0
iframe标签刷新页面停留在当前页

整体思路:在iframe所在当前页面地址url后拼接 #+targetUrl iframe标签内a标签跳转,父页面添加如下方法 iframe标签内调用父页面js方法用 window.parent.jsfun() 调用。参考网址:https://w...

S三少S
04/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
27分钟前
1
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
46分钟前
13
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
50分钟前
1
0
MySQL mybatis Point类型数据

MySQL中的point用于表示GIS中的地理坐标,在GIS中广泛使用 如何写入mysql,如下图: CREATE TABLE `test-point` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号', `point` ......

张欢19933
今天
2
0
设计模式-适配器模式

适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入...

HOT_POT
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部