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

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();

}

时间: 2025-01-10 20:07:12

用 js 做 URL 跳转带来的 Referer 丢失问题.的相关文章

tp5中,模板、控制器、js的url跳转方法

$this->redirect('/Supperman/outerMan');$this->display('Supperman:outerMan');这两者都只是在当前页面打开新的页面然后又试了一下header('Location:'.U('/Supperman/outerMan').'',false);还是不能满足效果.使用jsecho "<script language='javascript' type='text/javascript'>";echo

js判断移动终端url跳转

CODE <script> //判断终端url跳转 function sp_isMobile() { return Boolean(navigator.userAgent.match(/.*(iphone|ipod|android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up\.browser|netfront|palm-|palm os|pre\/|palmsource|ava

js的url中传递中文参数乱码,如何获取url中参数问题

一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript”> function send(){ var url = "test01.html"; var userName = $("#userName").html(); window.open(encodeURI(url + "?userName="

Jsp页面跳转和js控制页面跳转的几种方法

Jsp 页面跳转的几种方法 1. RequestDispatcher.forward() 在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet或者是JSP到另外的一个Servlet.JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有

JS弹出框、对话框、提示框,JS关闭窗口、关闭页面和JS控制页面跳转

一.JS弹出框.对话框.提示框 //====================== JS最常用三种弹出对话框 ======================== //1弹出对话框并输出一段提示信息 function ale() { //弹出一个对话框 alert("提示信息!"); } //2弹出一个询问框,有确定和取消按钮 function firm() { //利用对话框返回的值 (true 或者 false) if (confirm("你确定提交吗?")) { a

URL跳转

1.由于应用越来越多的需要和其他的第三方应用交互,以及在自身应用内部根据不同的逻辑将用户引 向到不同的页面,譬如一个典型的登录接口就经常需要在认证成功之后将用户引导到登录之前的页面,整个过程中如果实现不好就可能导致一些安全问题,特定条件下可能引起严重的安全漏洞. 2.成因 对于URL跳转的实现一般会有几种实现方式: (1)META标签内跳转 (2)javascript跳转 (3)header头跳转 通过以GET或者POST的方式接收将要跳转的URL,然后通过上面的几种方式的其中一种来跳转到目标U

用js做登录的用户名判定

<script type="text/javascript" language="javascript" src="JS/jquery.js"></script>    <script language="javascript" type="text/javascript">      $(document).ready(function() {            

socket.io+angular.js+express.js做个聊天应用(三)

接着前面博客文章socket.io+angular.js+express.js做个聊天应用(二) 首先开发之前先介绍下bower.它是用来管理前端类库的(详细介绍,安装可看http://blog.csdn.net/edagarli/article/details/26359535) [email protected]:~/projects/nodejs/chattingnode$ bower Usage: bower <command> [<args>] [<options&

JS获取URL中参数值(QueryString)的4种方法

在某书上看到这道题目,查找解题思路后做了部分解析,如有错误请指正 方法一:正则法 代码如下: function getQueryString(name) {    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'); //匹配指定name的QueryString    var r = window.location.search.substr(1).match(reg); //window.location.sea