在拦截其中,若是用户没有登录,那么我会根据请求头中的X-Requested-With来判断,若是不为null,则表示未ajax异步请求,会提醒用户没有登录,否则会重定向到登录页面。但是,有些手机从微信点击链接请求过来的时候,明明不是异步ajax请求,X-Requested-With的值也不为null,而是com.tencent.mm,因此这里判断是否是ajax请求还需要判断值是不是为XMLHttpRequest,如下:
String requestType = request.getHeader("X-Requested-With");
if(requestType!=null&&"XMLHttpRequest".equals(requestType)) {
MsgReturn msg = new MsgReturn();
msg.setCode("1000");
msg.setInfo("权限不足");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(msg));
return false;
}else {
response.sendRedirect(ssologin);
}
所以如果只是单单的判断是否为null是不能确定为ajax请求的。
这一个好大的坑