如何将 ajax 请求失败链接到 jqXHR 状态和错误类型?

问题描述

在哪里可以找到 $.ajax() 请求出错的(常见)问题的完整列表,以及它们导致的错误类型/代码?在 https://api.jquery.com/jQuery.ajax/#jqXHR 上,我可以看到所有可能的结果,但无法看到导致这种结果的原因。例如,我不知道

  • 它说的是 .error() Possible values for the second argument (besides null) are "timeout","error","abort",and "parsererror". 但是什么事件会导致第二个参数为空?
  • 如果 jqXHR 对象的状态为 0(我看到有时会发生这种情况,但我不知道何时、如何或为什么),这意味着什么?
  • 相反,如果我想“如果我现在重新启动服务器,传入请求会发生什么”或“如果用户的网络连接不稳定会发生什么”,我怎么知道是哪种错误类型/jqXHR 状态/响应文本消息等会导致用户

可能这个问题有一个非常简单的答案,即“null textStatus”、“0 jqXHR 状态”和“客户端网络连接问题”都是一样的东西(因为你要么拥有这三个,要么没有),或者接近到此为止,但我无法在任何地方找到此文档。

解决方法

有一个叫做“完成”的回调,检查它返回什么状态。我所知道的是服务器应该返回这些状态,但你所拥有的是一个例外。添加超时可能也有帮助。