07. ajax请求,解决sendRedirect 无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07. ajax请求,解决sendRedirect 无效相关的知识,希望对你有一定的参考价值。
介绍:
- 后台基于旧代码用的Filter验证,若 Session过期,则跳转登陆页面
- 前台框架:EasyUI
问题:
- 最初后台验证不通过:但是该方式对ajax请求无效,无法跳转到登陆页面1
- 所以我把 ajax请求 和 其它静态请求等 分开处理123456
if
(servletPath.endsWith(
".do"
)){
java.io.PrintWriter out = httpServletResponse.getWriter();
out.println(
"/login.html"
);
}
else
{
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() +
"/login.html"
);
}
- 现在的问题是,我懒的为每个ajax请求再去重写onSuccess事件判断是否包含 /login.html,这样的话我还不如给Session设置过期 1个月.
解决如下:123456789101112// 这是每个页面的通用引用js文件
在common.js中:
// 得益于ajax的 global(默认: true)触发全局 AJAX 事件。
var
jumpLoginPageStr =
‘<script type="text/javascript">‘
+
‘$(document).ajaxComplete(function(event, request, settings) {‘
+
‘ if(request.responseText.indexOf("/login.html") != -1){ ‘
+
‘window.top.location.href = "../login.html";‘
+
‘ }‘
+
‘ }) ‘
+
‘</script>‘
;
document.write(jumpLoginPageStr);
- 最初使用ajaxSuccess全局事件,但是发现session过期后,即便ajax status 200 ok,也没有触发这个全局事件,就换成了 ajaxComplete
- request.responseText == "/login.html" // session失效时,也判断为false,原来是:
2017年5月26日 10:24:20
以上是关于07. ajax请求,解决sendRedirect 无效的主要内容,如果未能解决你的问题,请参考以下文章