ajax判断

来源:互联网 发布:小马云现身阿里总部 编辑:程序博客网 时间:2024/06/07 12:00

当过滤器遇到ajax调用时无法正常返回情况,需要在过滤器中对ajax调用进行处理,示例如下:

//判断是否是ajax请求private static boolean ajaxDofilterSessionNull(HttpServletRequest request,HttpServletResponse response){        boolean isAjax = false;        if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equals("XMLHttpRequest")) {             // ajax请求            response.setHeader("sessionstatus", "timeout");            isAjax = true;        }         return isAjax;    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

若是返回true则不能用response.sendRedirect(“”)来跳转,此时需要一个ajax全局方法jQuery.ajaxSetup,如下:

//全局的ajax访问,处理ajax清求时sesion超时jQuery.ajaxSetup({    contentType : "application/x-www-form-urlencoded;charset=utf-8",    complete : function(XMLHttpRequest, textStatus) {        var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); // 通过XMLHttpRequest取得响应头,sessionstatus,        if (sessionstatus == "timeout") {            // 如果超时就处理 ,指定要跳转的页面            window.location.replace("/login.htm");        }    }}); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这样在ajax请求时就可以顺利跳转到需要的链接。此全局方法可以放在任何页面,所有ajax请求处理结果前都会调用此全局方法。

但是ajax所指向的后台方法还是会执行!

0 0
原创粉丝点击