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

• 如果我们在拦截器中定义了拦截器的路径为/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;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值