前端代码,在全局页面中写道:

<  type=\"text/ \">
    $.ajaxSetup({
		//设置ajax请求结束后的执行动作
		complete : function( HttpRequest, textStatus) {
			// 通过 HttpRequest取得响应头,sessionstatus
			var sessionstatus =  HttpRequest.getResponseHeader(\"sessionstatus\");
			if (sessionstatus == \"TIMEOUT\") {
				Tip.info(\"长时间未操作,正在前往登录页...\");
				setTimeout(function(){  //使用  setTimeout()方法设定定时2000毫秒
					var win = window;
					while (win != win.top) {
						win = win.top; // 避免弹框层中转向登录页的情况
					}
					win.location.href =  HttpRequest.getResponseHeader(\"CONTEXTPATH\");
				},2000);
			}
		}
	});
</ >

后台代码,在拦截请求时写道:

String type = request.getHeader(\"X-Requested-With\");
if (StringUtils.equals(\" HttpRequest\", type)) {
    // ajax请求
    response.setHeader(\"SESSIONSTATUS\", \"TIMEOUT\");
    response.setHeader(\"CONTEXTPATH\", redirectUrl);
    response.setStatus(HttpServletResponse.SC_FORBIDDEN);
} else {
     response.sendRedirect(redirectUrl);
}

// redirectUrl就是你要重定向的路径

假如你这样写还是不能跳转的话,那你就继续去找解决办法吧!

收藏 打印