这里有一个前提,我们知道Ajax不能做页面redirect和forward跳转,所以Ajax请求假如没登录,那么这个请求给用户的感觉就是没有任何反应,而用户又不知道用户已经退出了.解决办法:
后台代码
String requestedWith = request.getHeader("x-requested-with");
if (requestedWith != null && requestedWith.equalsIgnoreCase("XMLHttpRequest")) {
//ajax 请求后登录授权失效的情况
PrintWriter printWriter = response.getWriter();
response.setStatus(499);
printWriter.close();
return null;
}
前端ajax 方法
/*ajax 异步请求 授权失效后跳到登录页面*/
$.ajaxSetup({
statusCode: {
499: function (data) {
window.location="${ctx}/loginJsp";
}
}

原理: 通过重写ajax的状态码作为判断依据, 后台设置499,前端会ajax做相应的处理
具体可以查询 ajax重写状态码相关文章
本文介绍了一种解决Ajax请求在登录授权失效时无响应的问题方案。通过后台设置499状态码,前端根据此状态码自动跳转至登录页面,确保用户体验。详细解析了前后端代码实现方式。
1443

被折叠的 条评论
为什么被折叠?



