ajaxリクエストにおけるSessionの失効問題の解決
2576 ワード
以前のプロジェクトはjspページで、ajaxリクエストでSessionが無効になったという問題は発生しませんでした.しかし、最近の新しいプロジェクトでは、Jquery+bootstrap+htmlというフレームワークが使用され、ページのすべてのリクエストがajaxとなっています.
1.LoginFilterにajax要求判定を加え、ajax要求でsessionが失効した場合、responseのsetHeaderにタグを書き込む.書き込み後すぐにreturnし、LoginFilterの後続コードのリダイレクト操作を続行しないでください.
sessionstatus」の値がtimeoutの場合、終了メソッドを呼び出し、ユーザーのログイン状態を更新し、ログインインタフェースに終了します.
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();
}
}
}
});