部分ajax请求后如何处理非ajax响应?

时间:2015-02-13 08:15:34

标签: javascript jquery ajax jsf primefaces

我从页面发出部分ajax请求,如果我没有得到部分ajax响应作为响应,或者如果部分ajax响应格式错误,我找不到处理它的方法。客户端在这种情况下不做任何操作,只是保持冷静 它发生在会话过期且服务器返回非ajax响应(没有<partial-response>标记)而不是ajax响应时,或者当一个异常被陈述时,<partial-response>变得格式错误并且没有结束标记。
任何的想法?
我试图在客户端覆盖PrimeFaces.ajax.Response.handle函数,但在这种情况下不会调用它(因为返回非ajax响应)。

1 个答案:

答案 0 :(得分:0)

解决方案是将此java代码放在login.jsp页面中以识别ajax请求

<%
    boolean ajax = "XMLHttpRequest".equals( request.getHeader( "X-Requested-With" ) );
    if ( ajax ) {
        // Authentication Timeout
        response.setStatus( 419 );
    }
%>
客户端的

和jQuery(例如在某些模板中)

<script>
$.ajaxSetup({
    statusCode: {
      419: function() {
          location.reload();
      }
    }
   })
</script>