gpt4 book ai didi

error-handling - Restangular 错误处理问题

转载 作者:行者123 更新时间:2023-12-04 10:04:10 25 4
gpt4 key购买 nike

我遇到了 restangular 的问题。此代码:

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);
}
);
  • 如果 Retangular 调用成功:

  • 然后应该调用第一个函数
    它的参数应该是 myObject .
    除非您的 myObject 有特定的 代码或状态 字段,Restangular 不会添加任何内容。
  • 如果 Retangular 调用失败:

  • 那么第二个函数应该被调用并且它的参数是一个 回复 具有状态、标题、数据、配置字段的对象。
    不应该有任何 代码字段可用,如您的示例所示。

    如果出现 HTTP 404 Not Found 异常 , 在我的导航器 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
    }
    );
    }]);

    如果在您的 Angular 应用程序上设置了错误拦截器 myAngularApp 如上例所示,故障不应再到达您的自定义调用,然后是第二个函数,而是由 errorInterceptor 设置函数处理。

    如果出现 HTTP 404 Not Found 异常 , 在我的导航器 javascript 控制台中,我确实获得了:资源不可用...

    测试:
    Angular version 1.2.14
    Restangular version 1.3.1

    关于error-handling - Restangular 错误处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330786/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com