日期:2014-05-16  浏览次数:20660 次

判断用户是否为ajax请求 .

在用struts2做权限管理时,可以拦截用户请求的资源,然后判断该用户是否有相应资源的权限。如果没有就返回一个字符串,让其跳转相应的页面,问题来了。如果是ajax请求呢,用户是不会跳转的,虽然用户的操作被拦截,但是用户却不知道。所以我们可以在拦截成功的时候,响应一个字符,但是必须先判断出,用户的当前请求是否ajax请求。

这段代码只是针对jquery的ajax请求。jquery的ajax都会向后退发送一个X-Requested-With报头,其值为XMLHttpRequest。所以我们可以利用这个特点来判断:

private boolean isAjaxRequest(HttpServletRequest request) {
?String header = request.getHeader("X-Requested-With");
?if (header != null && "XMLHttpRequest".equals(header))
??return true;
?else
??return false;
}