版本:1.1.4
createNewWall: function(wall, successCallback, errorCallback) {
return $http.post($rootScope.baseAppsAPI + '/walls', null, {
params: wall
}).success(function(data, status) {
return successCallback.call(this, data);
}).error(function(data) {
return errorCallback.call(this, data);
});
}
我验证了 angular isSuccess 函数工作正常。 我通过将它添加到 window 对象并验证下面的代码(放置在我的成功回调中)导致错误回调被调用来做到这一点。
if (window.isSuccess(status)) {
return successCallback.call(this, data);
} else {
return errorCallback.call(this, data);
}
关于导致问题的原因有什么想法吗? $http 承诺没有被正确拒绝/解决有什么问题吗?
我面临同样的问题。 您关闭问题的方式可能意味着我可能做错了什么等。您能分享您的解决方案吗? 在任何地方都找不到这个。
罗伯特.,
我关闭了这个问题,因为问题在我之后(奇迹般地)消失了
对我的服务做了一些修改。 然而,它似乎回来了
断断续续地。 所以,我不再知道这是我的问题还是我的问题
角度的真正问题。 如果你愿意,我可以重新打开这个问题,你可以
添加您的问题吗? 那对你有用吗?
2013 年 5 月 13 日星期一上午 9:13,Robert [email protected]写道:
我面临同样的问题。 你关闭问题的方式可能意味着我
可能做错了什么等。你能分享你的解决方案吗? 不能
在任何地方找到这个。—
直接回复本邮件或在Gi tHub上查看
.
尊敬,
路易斯·W·西维洛
如上所述,我重新打开这个问题,因为它间歇性地发生。 rtpm,请包括您的用例/任何可能有助于确定问题的其他信息
罗伯特,
感谢您发送此内容。
我有一个 http 拦截器,它是我为基本身份验证编写的,它没有拒绝响应错误的承诺。
谢谢你们的机器人。 我有同样的问题。
当服务器返回 401 时 +1 发生在我身上
+1
服务器返回 401 状态代码时,回调函数不起作用。
这方面有什么进展吗? 400 也面临同样的问题。
对我来说@lsiv568的 anwser 做到了。 一开始有点奇怪,但是当您构建错误拦截器( source )时,您必须手动返回一个被拒绝的承诺。
.factory('myInterceptor', function($q) {
return {
response: function (response) { return response; },
responseError: function(response) {
// do stuff or
return $q.reject(response);
}
};
});
用 400 遇到同样的问题..
但是为什么这个问题关闭了,这个问题有没有具体的解决方案?
我也遇到了错误 400 的问题。这个问题解决了吗? 如果是,在哪个版本?
我遇到了所有 >299 错误的相同问题。 我正在将 Restangular 与自定义响应拦截器一起使用,但是我在开箱即用的 $http 服务中遇到错误,CSRF 令牌标头除外。 (无论如何,我尝试从 Restangular 中手动拒绝延迟对象,但正如预期的那样,这并没有改变任何东西。)
我也遇到了这个问题,可以重新打开吗?
原始问题中报告的问题是由于自定义拦截器未正确处理错误条件(未拒绝承诺)。 如果有人仍然遇到问题,这很可能是相同的情况 - 请确认您没有有问题的自定义拦截器。 如果您仍然认为 AngularJS 方面不太正确,请提供一个 _minimal、live_ 重现场景(最好使用 http://plnkr.co/,但任何其他类似的工具都可以)。
@pkozlowski-opensource 谢谢,我确实可以确认这是我的问题(d'oh)。
Angular 文档中应该有关于此的注释 - 我不知道我完全覆盖了实现拦截器的 $http promise 行为。
我也遇到了这个问题,并有一个拦截器,我一次又一次地查看它,因为它确实有正确的返回。 我终于找到了罪魁祸首。 如果您使用多次成功/错误调用,或者您实际上必须确保它们也返回正确的东西:) 成功回调应该返回修改后的响应,而错误回调应该像拦截器一样返回拒绝 $q.reject 。
+1 谢谢各位。 我在 $http.interceptor 的全局自定义中遇到了同样的问题
+1 @chmanie的回答。 非常感谢! 解决了我们的问题。
+1 谢谢@chmanie! 也解决了我的问题
+1 谢谢,拒绝为我修复了它!
+1 .thanks 解决了我的问题。
+1 谢谢,拒绝为我修复了它!
@chmanie的解决方案对我
@chmanie解决方案解决了这个问题。 Angularjs 文档中应该有关于此的说明。
@chmanie 谢谢啦~
最有用的评论
对我来说@lsiv568的 anwser 做到了。 一开始有点奇怪,但是当您构建错误拦截器( source )时,您必须手动返回一个被拒绝的承诺。