jQuery的.ajax方法如何定义失败的'请求?

时间:2017-06-14 19:05:22

标签: jquery ajax jquery-deferred

令人惊讶的是,documentation for .ajax似乎没有定义条款'成功'并且'失败'任何地方。

有明显的规则,例如:

  • 任何4xx5xx状态代码都会触发.fail()
  • 任何2xx状态代码都会触发.done()(成功)

然而,除了响应代码之外,似乎还有一些额外的逻辑.ajax用来决定响应是否失败"。

例如,如果无法根据所选的dataType解析响应,则会将其视为失败。特别是在这种情况下,例如,如果设置了dataType: json

  

以严格的方式解析JSON数据;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。

jQuery用于确定请求是否成功的完整规则列表是什么?

1 个答案:

答案 0 :(得分:0)

.ajax是在XMLHttpRequest对象之上实现的,这是" javascript方式"做ajax。 XMLHttpRequest也是基于HTTP协议的,因此您可能需要检查this列表,该列表可以恢复为:

  • 1xx信息性消息(返回确定)
  • 2xx成功(返回确定)
  • 3xx重定向
  • 4xx客户端错误(返回失败)
  • 5xx服务器错误(返回失败)

"逻辑"您正在寻找的是检查每个响应代码类型。