ajax請求session 超時處理

289434497 12年前發布 | 38K 次閱讀 JavaScript開發 Ajax
ajax請求session 超時處理問題

   public boolean preHandle(HttpServletRequest request,  
             HttpServletResponse response, Object handler) throws Exception  
     {  
         if (request.getSession().getAttribute("user") == null)//判斷session里是否有用戶信息  
            {  
             if (request.getHeader("x-requested-with") != null  
                     && request.getHeader("x-requested-with")  
                             .equalsIgnoreCase("XMLHttpRequest"))//如果是ajax請求響應頭會有,x-requested-with;  
             {  
                 response.setHeader("sessionstatus", "timeout");//在響應頭設置session狀態  
                 return false;  
             }  
               
         }  
         return true;  
     }  


         
          //全局的ajax訪問,處理ajax清求時sesion超時  
         $.ajaxSetup({   
             contentType:"application/x-www-form-urlencoded;charset=utf-8",   
             complete:function(XMLHttpRequest,textStatus){   
                     var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通過XMLHttpRequest取得響應頭,sessionstatus,  
                     if(sessionstatus=="timeout"){   
                                 //如果超時就處理 ,指定要跳轉的頁面  
                                         window.location.replace("${path}/common/login.do");   
                                 }   
                      }   
             }   
           });  


///////////////////////////////////////


              如果你前端是通過 js ajax 來請求后端數據的 這個請求頭 是可以自定義的 基本任何都可以 xhr.setRequestHeader("X_REQUESTED_WITH","xmlhttprequest");

這個地方 你可以任意設置 比如 

xhr.setRequestHeader("qxhr",1);


 2:判斷xhr的resposeText是否含有特定的字符串
 本文由用戶 289434497 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!