Javascript:调用$.getJSON.fail()时的条件

Javascript: conditions when $.getJSON.fail() is called

我正在使用以下代码向 API 发出请求。我进行了不同的测试,包括失败(错误 URL、无连接……)并且所有响应都来自 done()。我应该在什么情况下调用 fail()

  $.getJSON("http://myapi.com/", {
    action: "register",
    username: email,
    password: password
  });
  .done(function(response) { console.log(response); })
  .fail(function(jqxhr, textStatus, error) { console.log(textStatus); });

如果响应不是 'good' 响应代码,例如非 2xx 或 3xx 代码,通常会触发 fail()。否则,如果请求中的某些内容无法解析,它也会触发。例如,如果您告诉它您期望 json 返回,但响应不是(有效的)json。在这种情况下,解析错误也应该导致 fail() 被触发(iirc)。 @charlietfl 还提出请求超时也会导致 fail() 触发。我确定这不是完整列表。