在JQuery ajax中,如何正确处理HTTP 408错误?

我使用“error”选项集进行JQuery Ajax调用。 在我的“错误”方法中,我想处理HTTP 408与普通HTTP 500不同。

问题是jxhr.statusCode为0,“status”值只是“错误”! 但在firebug中我可以看到该服务肯定返回状态码408。

为什么jxhr.statusCode为0? 有没有其他方法来识别HTTP 408错误?

我的error handling程序代码如下所示(对于408错误,代码只是继续进入’else’块):

error: function (jxhr, status, error) { var $message = element.next().find('.loadmask-msg-label'); if (jxhr.status == 401) $message.html(settings.unauthorizedMessage); else if (jxhr.status == 408) $message.html(settings.timeoutMessage); else $message.html(settings.errorMessage); 

根据Jquery你应该这样做:

在此处输入图像描述

 $.ajax({ statusCode: { 404: function() { alert('page not found'); } } }) 

;

问题是FIREFOX。 在除Firefox之外的任何浏览器中,状态代码为408.在Firefox中,状态代码为0,并且不返回任何响应头。 此外,由于408响应,Firefox似乎重新请求了10次,我不明白为什么! 这仅适用于HTTP 408响应。

最后,我们不得不返回带有自定义标头的HTTP 500错误。

脏:(