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

How to handle non ajax response after partial ajax request?

本文关键字:ajax 请求 响应 何处理 处理      更新时间:2023-10-22

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

解决方案是将此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>