ajax前置处理实现异步请求session过期时跳转登录页面

第一篇博文,mark一下zhq[0]。

问题描述:用户页面,当session过期或都session注销后,普通页面后端都会有过滤器,session过期Redirect到登录页面,但是ajax请求后端只会返回登录页面源码并不跳转。

网上有很多方法1.返回的字符串附加登录状态2.修改http头信息;3.修改jquery源文件判断;综合比较还是以下方法最方便更易维护。个中缺点大家应该都明了就不赘述。

解决方案:

jQuery(function($){
    // 备份jquery的ajax方法  
    var _ajax=$.ajax;
    // 重写ajax方法,
    $.ajax=function(opt){
        var _success = opt && opt.success || function(a, b){};
        var _error = opt && opt.error || function(a, b){};
        var _opt = $.extend(opt, {
            success:function(data, textStatus){
                // 如果后台将请求重定向到了登录页,则data里面存放的就是登录页的源码,这里需要判断(登录页面一般是源码,所以这里只判断是否有html标签)
                if(data.indexOf('html') != -1) {
                    window.location.href= "http://www.baidu.com";
                    return;
                }
                _success(data, textStatus);  
          },
          error:function(data, textStatus){
            if(data.responseText.indexOf('html') != -1){
              window.location.href= "http://www.baidu.com";
              return;
            }
            _error(data, textStatus);
          } 
        });
        return _ajax(_opt);
    };
});
});  

 我遇到的是分页ajax,请求getList.html页面,session过期后端会把请求跳到login.html; 这里其实ajax执行的是error,所以只需给error一个前置处理就可以了。

转载于:https://www.cnblogs.com/web-easy/p/5056653.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值