基于jquery的全局ajax函数处理session过期后的ajax操作
基于jquery的全局ajax函数处理session过期后的ajax操作
十月阳光 发表于4年前
基于jquery的全局ajax函数处理session过期后的ajax操作
  • 发表于 4年前
  • 阅读 5948
  • 收藏 13
  • 点赞 1
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 在做web页面的时候,为了达到更好的交互效果,往往需要在页面放很多异步请求,和普通的请求一样,这些异步请求也需要处理session过期的问题

    做web常常需要考虑session过期的问题,session过期就让页面跳转到登录界面去,但是存在这样一个问题,当页面过期后,用户请求后台的方式有两种:传统方式和异步请求方式,传统方式倒好解决,请求到后台,拦截到过期的操作,直接跳转,但是异步请求不会刷新整个页面,因此对session过期的处理也不能按往常的方式,需要另外的操作。


具体思路:拦截器中判断是否为ajax请求 —— 是ajax请求则返回一个消息 ——页面添加一个全局的ajax处理事件,对消息进行判断,如果是报告session过期,则location到登录页面


第一步,拦截器判断是否为ajax请求:

if(request.getHeader("x-requested-with")!=null   
	            && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){   
				//是ajax请求,则返回个消息给前台
	            PrintWriter printWriter = response.getWriter();   
	            printWriter.print("{sessionState:timeout}");   
	            printWriter.flush();   
	            printWriter.close();   
        }else{  
                //不是ajax请求,则直接跳转页面
        }



第二步,设置全局ajax处理事件,处理session过期的问题,类似于一个拦截器或者过滤器:
$.ajaxSetup({   
        contentType:"application/x-www-form-urlencoded;charset=utf-8",   
        cache:false ,   
        complete:function(data,TS){   
            //对返回的数据data做判断,
            //session过期的话,就location到一个页面
            }    
        }   
    });



这是一个基于jQuery的异步处理机制,完整代码我没写,上次在公司写的代码,带不出来,文章里的代码有些还是在网上找来粘进去的,凌晨都过了半小时了,太困了,记录下思路而已。
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 25
博文 84
码字总数 49491
×
十月阳光
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: