当前位置: 代码迷 >> Java Web开发 >> struts2拦截器与AJAX的有关问题
  详细解决方案

struts2拦截器与AJAX的有关问题

热度:204   发布时间:2016-04-13 22:45:37.0
struts2拦截器与AJAX的问题
public String intercept(ActionInvocation invocation) throws Exception {
HttpServletRequest req = ServletActionContext.getRequest();
   if (req.getSession().getAttribute("XXX") == null) {
    return "login";
   } else {
    return invocation.invoke();
   }
}

用了struts的拦截器来阻止未登录用户自己访问action,session失效就跳转到登录页面,可有个问题后台的请求的方式全是AJAX如果session失效,就不会刷新也就是不会跳转至登录页面,求问下这种情况应该咋解决。
------解决思路----------------------
判断请求的URL,如果是ajax的URL,直接放行
------解决思路----------------------
对于ajax的请求,后台是不可能做到让前端跳转页面的.
一定要这么做的话,只能:
后台返回固定的错误码,前端对应,封装ajax方法
------解决思路----------------------
谁告诉你 Ajax 请求  拦截不到的?  谁告诉你  不能跳转到登陆页面的?    

你直接在拦截器里面 写JS代码  给前台一个提示框   然后就跳了呗
------解决思路----------------------
把 return "login";去掉 用下面这样跳  
ActionContext act = invocation.getInvocationContext();
HttpServletResponse response = (HttpServletResponse) act.get(ServletActionContext.HTTP_RESPONSE);
response.sendRedirect("login.jsp");        
  相关解决方案