SSM拦截器HandlerInterceptor拦截Ajax请求的原因

    科技2022-07-16  122

    • 如果我们在拦截器中定义了拦截器的路径为/user/*这个地址,并且拦截器拦截器之后,如果没有登录,那么重定向到登录界面。但是我们在未登录的前提下使用Ajax异步请求了/user/addUser.do这个地址,出现了拦截器是拦截了,但是并没有重定向到登录界面。

    String requestUrl = request.getRequestURI(); Object admin = request.getSession().getAttribute("admin"); if(admin == null) { //表示未登录或登录失效 System.out.println("拦截:"+requestUrl+"请求"); String header = request.getHeader("X-Requested-With"); //判断是否为ajax请求 if ("XMLHttpRequest".equals(header)) { //是ajax请求 Map<String, String> ret = new HashMap<String, String>(); ret.put("type", "error"); ret.put("msg", "登录超时或为未登录,请重新登陆"); response.getWriter().write(JSONObject.fromObject(ret).toString()); return false; } //普通链接跳转,直接重定向 response.sendRedirect(request.getServletContext().getContextPath()+"/system/login"); return false; } return true; }
    Processed: 0.009, SQL: 8