项目一个需求,单点登录,从oa系统到我们系统,用户如果登录了不需要再次登录,怎么判断用户在oa过来的。
解决方案:javascript 有一个可以获取前一页面的URL地址的方法 document.referrer
无法获取 referrer 信息的情况
下面的场景无法获得 referrer 信息
- 直接在浏览器中输入地址
- 使用
location.reload()
刷新(location.href
或者location.replace()
刷新有信息) - 在微信对话框中,点击进入微信自身浏览器
- 扫码进入微信或QQ的浏览器
- 直接新窗口打开一个页面
- 从https的网站直接进入一个http协议的网站(Chrome下亲测)
a
标签设置rel="noreferrer"
(兼容IE7+)meta
标签来控制不让浏览器发送referer
- 点击 flash 内部链接
- Chrome4.0以下,IE 5.5+以下返回空的字符串
- 使用 修改 Location 进行页面导航的方法,会导致在IE下丢失 referrer,这可能是IE的一个BUG
- 跨域