struts2拦截器判断用户是否为ajax请求

来源:互联网 发布:手机在淘宝上怎么截图 编辑:程序博客网 时间:2024/05/17 07:02
现在的网站,应该绝大多数用jquery作为基础类库了。假设有这样的需求,在用struts2做权限管理的时候,我们可以拦截用户请求的资源,然后判断该用户是否有相应资源的权限。如果没有就返回一个字符串,让其跳转相应的页面,问题来了。如果是ajax请求呢,用户是不会跳转的,虽然用户的操作被拦截,但是用户却不知道。所以我们可以在拦截成功的时候,响应一个字符,但是必须先判断出,用户的当前请求是否ajax请求。

这段代码只是针对jquery的ajax请求。 如果经常用firebug进行调试的话,会发现jquery的ajax都会向后退发送一个X-Requested-With报头,其值为XMLHttpRequest。所以我们可以利用这个特点来判断。

 

[java] view plaincopy
  1. private boolean isAjaxRequest(HttpServletRequest request) {  
  2.     String header = request.getHeader("X-Requested-With");  
  3.     if (header != null && "XMLHttpRequest".equals(header))  
  4.         return true;  
  5.     else  
  6.         return false;  
  7. }  


原创粉丝点击