Ajax&Json - 异步请求遇到session失效

项目为Java 项目, 有个filter,作用是检查是否登录或是否登录超时,如果没有登录或登录超时,则跳转至登录界面。

问题来了,有个功能是异步请求数据,返回json并解析内容,遇到session超时,filter起作用,内容跳转至登录界面,把界面返回给ajax的回调函数里的参数中。

这样解析失败,停留在遮罩层不动了。想着给用户一个提示,告诉用户是因为超时才查不到数据的。

在CSDN论坛WEB开发的ajax版块提问,版主net_lover回复:

String header = request.getHeader("X-Requested-With");
if(null != header && header.equals("XMLHttpRequest")){
//返回json
}

查了一下,Ajax 请求多了个X-Requested-With,可以利用它,request.getHeader("X-Requested-With"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。

在filter中做判断,如果是Ajax异步请求,则返回json,内容中有个标记,表示用户未登录或登录超时;如果是传统请求则跳转页面。

在Js中,判断该表记是否存在并且是filter中给的值,是则停止json解析,提示用户未登录或登录超时。不存在则继续解析内容。

你可能感兴趣的:(HTML&JavaScript,Java)