在JQuery ajax中,如何正确处理HTTP 408错误?
问题描述:
我使用“error”选项设置了一个JQuery Ajax调用。在我的“错误”方法中,我想处理HTTP 408与正常的HTTP 500不同。在JQuery ajax中,如何正确处理HTTP 408错误?
问题是jxhr.statusCode为0,“状态”值只是“错误”!但在萤火虫,我可以看到,该服务绝对返回状态代码408.
为什么jxhr.statusCode是0?是否有另一种方法来识别HTTP 408错误?
我的错误处理代码如下(为一个408错误代码只是延续到“其他”块):
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);
答
问题是FIREFOX。在除Firefox以外的任何浏览器中,状态码都是408.在Firefox中,状态码为0,并且不返回任何响应标头。另外,由于408响应,Firefox似乎重新请求了10次,我不知道为什么!这仅适用于HTTP 408响应。
最后,我们不得不用自定义标题返回HTTP 500错误。
脏:(
我也遇到了这个问题。我的服务器返回了预期的408,Firefox只是保留然后我打开了一个错误报告:https://bugzilla.mozilla.org/show_bug.cgi?id = 907800 – 2013-08-21 17:49:13
似乎仍然是Firefox处理408错误,因为它拒绝状态码0并且在第一个请求上不会解析导致408的请求。在后续的请求中对于相同的网址,该请求被408拒绝,因为它应该是。 – hvrauhal 2016-05-06 07:52:25