sbo*_*uba 7 error-handling restangular
我有一个restangular的问题.这段代码:
Restangular.one("undefined_ressource").get().then(
function(res){
console.log("success", res.code);
},
function (res) {
console.log("fail", res.code);
}
);
Run Code Online (Sandbox Code Playgroud)
试图获取http://api.local.com/undefined_ressource不退出的网址.我的服务器按预期返回404,但永远不会触发失败日志.Intead它会成功回调并记录"success 404"到控制台.
Angular version 1.2.15
Restangular version 1.3.1
Run Code Online (Sandbox Code Playgroud)
任何帮助都会受到欢迎!谢谢
Pat*_*ini 15
改编自您的代码示例
Restangular.one("undefined_ressource").get().then(
function(myObject){
console.log("success obtained myObject");
},
function (res) {
console.log("fail", res.status);
}
);
Run Code Online (Sandbox Code Playgroud)
然后应该调用第一个函数,它的参数应该是myObject.除非你的myObject有一个特定的代码或状态字段,否则Restangular不会添加任何代码或状态字段.
然后应该调用第二个函数,它的参数是一个具有status,header,data,config字段的响应对象.不应该有任何可用的代码字段,如您的示例所示.
如果出现HTTP 404 Not Found异常,在我的导航器javascript控制台中我会获得:"fail"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
}
);
}]);
Run Code Online (Sandbox Code Playgroud)
如果在您的角度应用程序myAngularApp上设置了错误拦截器,如上例所示,失败应该不再达到您的自定义调用,然后是第二个函数,但由errorInterceptor设置函数处理.
如果出现HTTP 404 Not Found异常,在我的导航器javascript控制台中我会获得:资源不可用...
经测试:
Angular version 1.2.14
Restangular version 1.3.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11809 次 |
| 最近记录: |