我们有以下服务:
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 标头的“预资源调用”来解决问题,但是有更好的解决方案吗?