目前的项目中有这样的需求,如果用户的状态因已登录太久已经失效(登录超时,用户自己不知道),用户在操作发起一个ajax请求的时候服务端是无法返回有效数据的,而ajax请求的状态还是成功,会执行配置项里的success函数参数或者done的异步回调。这时需要我们在请求成功后判断用户是否已经登录超时,在每一个ajax的成功回调里加是不现实的的,我们需要做统一处理。
执行成功回调有两种格式,一种是放在ajax参数里面,如下:
$.ajax({
url:'getData.jsp',
success:function(data){
// 处理成功回调
},
error:function(a,b,c){
alert("请求失败:"+b);
}
});
另一种是在较新的jQuery版本里所支持的异步回调格式:
$.ajax({
url:'getData.jsp',
dataType:'JSON'
}).done(function(data){
// 处理成功回调
}).fail(function(a,b,c){
alert('请求失败:'+b);
});
如果我们能够截获到所返回的data数据,然后判断其某个属性值是否是超时状态值即可,如果是则可以跳转到登陆页。针对以上两种格式的成功回调我们都可以处理,代码如下: