123456789
//判断是否是ajax请求 if("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))){ response.setHeader("REDIRECT", "REDIRECT");//告诉ajax我是重定向 //告诉ajax我重定向的路径 response.setHeader("CONTENTPATH", RootConstant.LOGIN_PATH); response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); }else{ response.sendRedirect(RootConstant.LOGIN_PATH); }
在公共的JS中配置一下内容
123456789101112131415
$.ajaxSetup( { //设置ajax请求结束后的执行动作 complete : function(XMLHttpRequest, textStatus) { // 通过XMLHttpRequest取得响应头,REDIRECT var redirect = XMLHttpRequest.getResponseHeader("REDIRECT");//若HEADER中含有REDIRECT说明后端想重定向 if (redirect == "REDIRECT") { var win = window; while (win != win.top){ win = win.top; } //将后端重定向的地址取出来,使用win.location.href去实现重定向的要求 win.location.href= XMLHttpRequest.getResponseHeader('CONTENTPATH'); } }});