ajaxリクエストにおけるSessionの失効問題の解決

2576 ワード

以前のプロジェクトはjspページで、ajaxリクエストでSessionが無効になったという問題は発生しませんでした.しかし、最近の新しいプロジェクトでは、Jquery+bootstrap+htmlというフレームワークが使用され、ページのすべてのリクエストがajaxとなっています.
1.LoginFilterにajax要求判定を加え、ajax要求でsessionが失効した場合、responseのsetHeaderにタグを書き込む.書き込み後すぐにreturnし、LoginFilterの後続コードのリダイレクト操作を続行しないでください.
if( request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equals("XMLHttpRequest")  ) {
   response.setHeader("sessionstatus", "timeout");
   return ;

} 
、共通jsに$を書き込む.ajaxSetup、「
sessionstatus」の値がtimeoutの場合、終了メソッドを呼び出し、ユーザーのログイン状態を更新し、ログインインタフェースに終了します.
$.ajaxSetup({
         type: 'POST',
          complete: function(xhr,status) {
              var sessionStatus = xhr.getResponseHeader('sessionstatus');
              if(sessionStatus == 'timeout') {
                      var yes = confirm('          , session   ,      .');
                      if (yes) {
                              logOut();
                          }
                  }
          }
  });