Spring Mvc Session超时easyui tab页中ajax请求跳出问题

 <!-- 
启动Spring MVC的注解功能,完成请求和注解POJO的映射,添加拦截器,类级别的处理器映射 
-->

拦截器配置

public class HandlerInterceptor1 extends HandlerInterceptorAdapter {//此处一般继承HandlerInterceptorAdapter适配器即可  
    @Override  
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {  
        if (request.getHeader("x-requested-with") != null&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))//如果是ajax请求响应头会有,x-requested-with;  </span><div style="color: rgb(153, 51, 102);"><span style="font-size:12px;">         {  </span></div><div style="color: rgb(153, 51, 102);"><span style="font-size:12px;">             response.setHeader("sessionstatus", "timeout");//在响应头设置session状态    
 response.getWriter().print("timeout"); //打印一个返回值,没这一行,在tabs页中无法跳出(<span style="font-size:12px;">导航栏能跳出</span>)
        return true;  
    }  
    @Override  
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {  
        System.out.println("===========HandlerInterceptor1 postHandle");  
    }  
    @Override  
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {  
        System.out.println("===========HandlerInterceptor1 afterCompletion");  
    }  
}  
需要一个全局的js

$.ajaxSetup({ 
error: function (XMLHttpRequest, textStatus, errorThrown){
if(XMLHttpRequest.status==403){
alert('您没有权限访问此资源或进行此操作');
return false;
}
},  
         complete:function(XMLHttpRequest,textStatus){   
        var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus, 
                if(sessionstatus=='timeout'){   
                      //如果超时就处理 ,指定要跳转的页面  
             var top = getTopWinow(); //获取当前页面的顶层窗口对象
             alert('登录超时, 请重新登录.'); 
                 top.location.href=path+"/login.jsp"; //跳转到登陆页面
             }   
         }   
   }); 

/** 
  * 在页面中任何嵌套层次的窗口中获取顶层窗口 
  * @return 当前页面的顶层窗口对象 
  */
function getTopWinow(){  
    var p = window;  
    while(p != p.parent){  
        p = p.parent;  
    }  
    return p;  
}  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值