我遇到了矩形问题。这段代码:

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不会添加任何字段。
  • 如果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/

    10-15 06:54