我们提供以下服务:
app.factory('myService', function($resource) {
return $resource("resources/myServiceUri", {param1: "foo"}, {
get: {method: "GET", isArray: true}
});
});
在页面加载时,我们的应用程序调用这样的服务:
myService.get({},function(result) {
model.myServicesModel = result;
console.log("if there are network problems the control goes here");
});
当后台运行且连接正常时,这非常有效。但是如果由于某个原因或其他后台服务无法连接到数据库,它使用资源调用将返回错误代码为500的响应。这仍然可以,但似乎此服务调用返回大量资源对象,每个对象包含一个字符来自后台服务抛出的异常。
如您所见,我们根本没有使用错误回调,但即使我们在发生此问题时控件也会成功回调。
有没有一个好方法来处理这个问题?我们能以某种方式绕过返回错误代码500的响应吗?
问题可以通过进行“预资源调用”来解决,该调用仅返回同一调用的http标头,但有更好的解决方案吗?
答案 0 :(得分:0)
我不确定它是否是正确的解决方案,但添加空错误回调应该可以解决问题。
myService.get({},function(result) {
model.myServicesModel = result;
console.log("if there are network problems the control goes here");
}, function() {
//error
});
使用此回调,您的结果将不会分配给您的模型。如果将参数添加到回调函数,您还可以知道错误状态和标题,并向用户显示有关错误的有用信息。