我想澄清哪些http状态代码解决了来自$ http的承诺并且拒绝了该承诺。据我了解,它仅在200的情况下解决,其余的被拒绝。
是吗?还是有其他情况?
答案 0 :(得分:3)
编辑:
对于AngularJS
200到299之间的响应状态代码被视为成功状态,并将导致调用成功回调。任何超出该范围的响应状态代码都被视为错误状态,并将导致调用错误回调。
来源:https://github.com/angular/angular.js/blob/master/src/ng/http.js
答案 1 :(得分:0)
正如Bergi在对你的问题的评论中所指出的,答案在于源代码。 $http中有一个名为isSuccess的私有函数,如下所示:
function isSuccess(status) {
return 200 <= status && status < 300;
}
它在该文件中的几个地方使用过,但对我们来说重要的是:
(isSuccess(status) ? deferred.resolve : deferred.reject)({ //...
所以有你的答案! 2 **(两百个)范围内的任何状态代码都是成功的,并且将解决$ http包围XHR的承诺,其他任何事情都是失败的并且会拒绝它。
现在也在docs for $http中解释了它。