何时返回不同的jQuery Ajax错误代码?

时间:2016-10-18 11:22:59

标签: javascript jquery ajax error-handling

在jQuery-docs中,他们声明有4种可能的错误代码:

  • parserror
  • timeout
  • abort
  • error

我注意到,当响应内容类型为parserror但jQuery无法解析时,会给出application/json

当服务器在30秒内没有响应时,

timeout

这很有用,因为基于这些代码,我可以在浏览器中显示一些有用的错误消息。

问题在于我不确定何时返回这两个其他代码,并且从我在Google上看到的内容看来,当网络连接断开时我应该返回abort但是当我测试了这个时我得到了而是error

1 个答案:

答案 0 :(得分:1)

jQuery的ajax错误处理程序返回了三个参数

.fail(function(jqXHR, textStatus, errorThrown) {...
  • 第一个是XHR对象,包含请求
  • 第二个是错误,作为一个字符串,这是你引用的那个
  • The third is the actual network error,如果返回一个,例如404 Not Found

对于第二个参数,有五个可能的返回值

  • 超时
  • 错误
  • 中止
  • parsererror
当错误无法通过其他选项之一指定时,

null会被撤消

如果请求超时,则返回

timeout。可以使用timeout选项

设置超时发生前的持续时间 如果发生网络错误,则返回

error,第三个参数也将填充代码,如.fail(function(jqXHR, "error", "Not Found" )

如果请求中止,则返回

abort。可以使用abort()方法

中止XMLHttpRequest 如果$ .ajax被赋予parsererror选项,或者如果响应具有内容类型集,则返回

dataType,这使得jQuery尝试将响应解析为HTML,JSON,XML等。并且响应不能被解析,并且解析器失败。 发生这种情况时,请求成功,它只是无法解析的响应。