我遇到了矩形问题。这段代码:
Restangular.one("undefined_ressource").get().then(
function(res){
console.log("success", res.code);
},
function (res) {
console.log("fail", res.code);
}
);
尝试获取不退出的URL
http://api.local.com/undefined_ressource
。我的服务器按预期返回了404,但从未触发失败日志。将它插入成功回调中,并将"success 404"
记录到控制台。Angular version 1.2.15
Restangular version 1.3.1
任何帮助都将受到欢迎!谢谢
最佳答案
改编自您的代码示例
Restangular.one("undefined_ressource").get().then(
function(myObject){
console.log("success obtained myObject");
},
function (res) {
console.log("fail", res.status);
}
);
然后应该调用第一个函数
并且其参数应为 myObject 。
除非您的 myObject 具有特定的代码或状态字段,否则Restangular不会添加任何字段。
然后应调用第二个函数,其参数应为带有状态, header ,数据,配置字段的响应对象。
如示例所示,不应有任何代码字段可用。
在未找到HTTP 404异常的情况下,在我的导航javascript控制台中,我确实获得了:
“失败” 404
带有错误拦截器
myAngularApp.run(['Restangular', '$window', function(Restangular, $window){
Restangular.setErrorInterceptor(
function(response) {
if (response.status == 401) {
console.log("Login required... ");
$window.location.href='/login';
} else if (response.status == 404) {
console.log("Resource not available...");
} else {
console.log("Response received with HTTP error code: " + response.status );
}
return false; // stop the promise chain
}
);
}]);
如果如上例所示,在您的角度应用程序 myAngularApp 上设置了错误拦截器,则故障将不再到达您的自定义调用,而是第二个函数,而是由errorInterceptor设置函数处理。
如果出现HTTP 404找不到异常,在我的导航器JavaScript控制台中,我确实获得:资源不可用...
经过测试:
Angular version 1.2.14
Restangular version 1.3.1
关于error-handling - Restangular 错误处理问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22330786/