对jQuery ajax请求成功(失败)回调执行前的统一处理(兼容较老版本jQuery)

项目中遇到用户登录超时后AJAX请求仍显示成功的场景,需要在每个请求成功回调判断登录状态。通过在jQuery全局设置success回调进行统一处理,避免在每个请求中添加额外代码。这种方式能解决全局问题,了解库内部机制有助于解决特殊需求。
摘要由CSDN通过智能技术生成

目前的项目中有这样的需求,如果用户的状态因已登录太久已经失效(登录超时,用户自己不知道),用户在操作发起一个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数据,然后判断其某个属性值是否是超时状态值即可,如果是则可以跳转到登陆页。针对以上两种格式的成功回调我们都可以处理,代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值