ajax请求判断登录超时并给出提示

第一:在后台登录逻辑中判断是否是ajax请求,并设置特定的返回数据;

判断请求头中是否含有X-Requested-With并等于XMLHttpRequest,如果为true,则证明是ajax请求

if(request.getHeader("X-Requested-With") != null && request.getHeader("X-Requested-With").equals("XMLHttpRequest")){
	//判断请求头中是否含有X-Requested-With并等于XMLHttpRequest,如果为true,则证明是ajax请求
	response.setHeader("SessionStatus", "sessionTimeOut");//设置session状态
	response.setStatus(401);//设置返回状态码
	return false;
}else {
	logger.info("重定向到登录页面");
	//重定向到登录页面,具体代码省略。。。
	return super.onAccessDenied(request, response);
}

下图可以看到ajax请求的请求头: 

第二:前端进行判断并给出提示;

设置全局的ajaxError,这样不用对每个ajax请求都去判断验证;

$(document).ajaxError(function (event, jqXHR, options, errorMsg) {
    var sessionStatus = jqXHR.getResponseHeader('SessionStatus');
    if (sessionStatus && sessionStatus === 'sessionTimeOut') {
     
        alert("您的会话已过期,请重新登录");
    }
});

猜你喜欢

转载自blog.csdn.net/sayoko06/article/details/84941192
今日推荐