ajax请求 session过期跳转首页的两种处理方式

前端之家收集整理的这篇文章主要介绍了ajax请求 session过期跳转首页的两种处理方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在处理session过期跳转首页时遇到了一些困难,经过百度发现了大致两种方法,在这里进行一下整理:


1、直接重写jQuery ajax方法

[javascript] view plain copy
  1. (function($){
  2. //备份jquery的ajax方法
  3. var_ajax=$.ajax;
  4. //重写jquery的ajax方法
  5. $.ajax=function(opt){
  6. //备份opt中error和success方法
  7. varfn={
  8. error:function(XMLHttpRequest,textStatus,errorThrown){},
  9. success:function(data,textStatus){
  10. alert(textStatus);
  11. //在这里进行跳转
  12. }
  13. }
  14. if(opt.error){
  15. fn.error=opt.error;
  16. }
  17. if(opt.success){
  18. fn.success=opt.success;
  19. }
  20. //扩展增强处理
  21. var_opt=$.extend(opt,{
  22. error:function(XMLHttpRequest,errorThrown){
  23. //错误方法增强处理
  24. fn.error(XMLHttpRequest,errorThrown);
  25. },
  26. success:function(data,textStatus){
  27. //成功回调方法增强处理
  28. fn.success(data,textStatus);
  29. }
  30. });
  31. _ajax(_opt);
  32. };
  33. })(jQuery);

这种方法与jquery.min.js库有冲突,使用时一定要注意!


2、基于 ajaxSetup来进行控制:

登录的过滤器或者拦截器中添加一下代码

  1. if("XMLHttpRequest".equals(((HttpServletRequest)request).getHeader("X-Requested-With"))){
  2. ((HttpServletResponse)response).setHeader("sessionstatus","timeout");
  3. ((HttpServletResponse)response).setHeader("redirectUrl",((HttpServletRequest)request).getContextPath()+"/login.jsp");
  4. }else{
  5. ((HttpServletResponse)response).sendRedirect(path2);
  6. }
  7. //如果session为空表示用户没有登录重定向到login.jsp页面
  8. return;


js中添加

[javascript] view plain copy
  1. //全局的AJAX访问,处理AJAX清求时SESSION超时
  2. if(typeof($)!="undefined"){
  3. $.ajaxSetup({
  4. contentType:"application/x-www-form-urlencoded;charset=utf-8",
  5. complete:function(XMLHttpRequest,textStatus){
  6. //通过XMLHttpRequest取得响应头,sessionstatus
  7. varsessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus");
  8. if(sessionstatus=="timeout"){
  9. //这里怎么处理在你,这里跳转登录页面
  10. window.location.replace(XMLHttpRequest.getResponseHeader("redirectUrl"));
  11. }
  12. }
  13. });
  14. }

jquery不推荐使用ajaxSetup容易影响其他插件ajax发生冲突,以上两种方式在使用过程中一定要谨慎!


转自:http://blog.csdn.net/qq741437836/article/details/52587816

http://www.jb51.net/article/85796.htm

http://www.jb51.net/article/60202.htm

http://www.cnblogs.com/web-easy/p/5056653.html

猜你在找的Ajax相关文章