重定向到登录页面后跳转原页面

重定向到登录页面后跳转原页面

  • 起因:

网站涉及权限问题,没有登录或者登录过期需要重新登录时服务器会302重定向到登录页面,但是有登录以后回到原页面的需求

  • 实现思路:

服务器在重定向时带上参数,参数的值就是当前页面的路径,因为可能当前路径有参数,所以要对路径进行URL编码

/*PHP代码*/
if(登录失效){
 	//将路径+?+参数进行URL编码以后作为登录页的参数url的值
  	header("Location: /login.php?url=".urlencode($_SERVER['PHP_SELF']."?".$_SERVER["QUERY_STRING"]) );
 }

登录页提取参数,然后URL解码,登录验证成功以后对应跳转

/*JS代码*/

/**
 * 获取url中的参数值
 * 
 * @param queryName 要获取的参数名
 * @returns {string|null} 返回对应的参数值 没有找到返回null
 * @constructor
 */
function GetQueryValue(queryName) {  //这里函数名的首字母G不能小写,小写就找不到方法,目前不知道为什么,知道的欢迎指教
    var query = decodeURI(window.location.search.substring(1));
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == queryName) {
            return pair[1];
        }
    }
    return null;
}

/*中间代码省略*/


if(登录验证成功){
	let url= GetQueryValue("url"); //链接里的tourl参数
	if (url != null) {
		//参数有值,跳转到原网页
	   location.replace(decodeURIComponent(url));    
	} else {
		//参数没值,跳转首页
	   location.replace("admin/index.php");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值