/**
* 扩展ajax提交 如果头部存在adminLogin_status ==timeout 说明前端登录超时 刷新页面重新登录
*/
var ajax = $.ajax;
$.ajax = function (opt) {
//备份opt中error和success方法
var fn = {
success: function (data, textStatus, jqXHR) {
}
}
if (opt.success) {
fn.success = opt.success;
}
//扩展增强处理
var _opt = $.extend(opt, {
success: function (data, textStatus, jqXHR) {
if(jqXHR.getResponseHeader("adminLogin_status") && jqXHR.getResponseHeader("adminLogin_status") == "timeout"){
window.location.href = "/admin/login.do"
//window.location.reload(true);//刷新当前页
return;
}
fn.success(data, textStatus, jqXHR);
}
});
var def = ajax.call($, _opt); // 兼容不支持异步回调的版本
if('done' in def){
var done = def.done;
def.done = function (func) {
function _done(data) {
func(data);
}
done.call(def, _done);
return def;
};
}
return def;
};
后台过滤器 无登录时 判断代码
//ajax情况时 编辑登录超时
if(isAjax(request)){
response.setHeader("adminLogin_status", "timeout");
}else{
response.sendRedirect(getNologinUrl(request));
}
public static boolean isAjax(HttpServletRequest request){
return (request.getHeader("X-Requested-With")!=null&&"XMLHttpRequest".equals(request.getHeader("X-Requested-With").toString()));
}