【发布时间】:2017-11-17 01:52:10
【问题描述】:
令人惊讶的是,documentation for .ajax 似乎没有在任何地方定义术语“成功”和“失败”。
有明显的规则,例如:
- 任何
4xx或5xx状态码都会触发.fail() - 任何
2xx状态码都会触发.done()(成功)
但是,除了响应代码之外,似乎还有一些额外的逻辑,.ajax 使用这些逻辑来确定响应是否“失败”。
例如,如果无法根据选择的dataType 解析响应,这将被视为失败。尤其是这种情况,例如,如果设置了dataType: json:
对JSON数据进行严格解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。从 jQuery 1.9 开始,空响应也会被拒绝;服务器应该返回 null 或 {} 的响应。
jQuery 用来确定请求是否成功的完整规则列表是什么?
【问题讨论】:
标签: jquery ajax jquery-deferred