所有的Form表单提交会先检查session的情况,使用一个单独的同步请求,session过期返回expired,否则返回alive,前端JS判断如果过期打开新窗口登录。 jQuery(function($) {
// action listener for form commit
$("form").unbind("submit").submit(checkSession);
$(document).ajaxComplete(function() {
$("form").unbind("submit").submit(checkSession);
});
});
function checkSession(event) {
var checkSession;
jQuery.ajax({
url : sessionCheckServletPath,
data : {
checkSession : true
},
async : false,
complete: function (xhr, textStatus) {
checkSession = xhr.getResponseHeader("sessionStatus");
}
});
if ("expired" == checkSession) {
window.open(ssoLoginUrl, "loginWindow");
return false;
}
return true;
}