如果一个会话已经超时此时再通过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,则是普通的请求