对于普通的http请求,请求服务器,session超时的情况下,页面会自动跳转到登录页面。
但是对于Ajax请求,页面还是当前页面,不会跳转到登录页面。
看到网上很多方法,但是都不通用,下面是如何解决这个问题的例子。
一、请求页面修改
本例是基于jQuery框架为基础实现的。
创建一个login-timeout.js文件,拷贝如下代码。
由于是基于jQuery框架的,所以页面引用login-timeout.js文件的时候,一定要放在引入jQuery后面。
这样的话,相当于每个页面都要引入此文件,修改量大,所以可以把此js代码加在jquery-1.8.0.min.js里面。注意要放在最后,不能放在前面,因为是基于jQuery框架为基础的。
二、服务端修改
服务器端判断是否登录超时通常写在过滤器里面。
HttpServletResponse.setStatus(999);
即对于ajax请求返回的状态码设置成999,要和js里面的状态码保持一致,也可以是888、777等等,不要使用已被占有的状态码即可(200、302、404、505等)
【备注】其他http请求相关跳转登录统一处理:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31512205/viewspace-2153572/ ,如需转载,请注明出处,否则将追究法律责任。