如果一个会话已经超时此时再通过ajax请求和拦截没有权限的请求,那么ajax返回的则是一个登陆页面的html,页面显示一个登陆页面,那么能否在java端,如拦截器里判断客户的请求是否是ajax请求呢,经过查询,能.
普通请求与ajax请求的报文头不一样,通过如下
Java代码
public boolean isAjaxRequest(HttpServletRequest request){
boolean isAjaxRequest = false;
// 判断是否为ajax请求
String requestType = request.getHeader("X-Requested-With");
if("XMLHttpRequest".equals(requestType)){
isAjaxRequest = true;
}
return isAjaxRequest;
}
如果requestType能拿到值,并且值为XMLHttpRequest,表示客户端的请求为异步请求,那自然是ajax请求了,反之如果为null,则是普通的请求