使用Restangular处理错误代码(401,403)

时间:2013-12-10 02:21:08

标签: angularjs restangular

我正在使用Restangular构建应用程序。我会在一个地方实现处理错误,如401,403,500等在响应拦截器中。

这就是我写的:

RestangularProvider.setResponseExtractor(function(response, operation, what, url) {
  switch(response.meta.code) {
    case 200:
      // Handle 200
    break;

    case 401:
      // Redirect to login
    break;

    /* ... */

    default:
    break;
  }
}

实际上发生的是200正确但是401的这种方法根本没有被击中。 我从服务器端获得的JSON格式如下,以便成功响应:

{"meta":{"apiVersion":"0.1","code":200,"errors":null},"response":{"response":"value"}}

{"meta":{"apiVersion":"0.1","code":401,"errors":[{"code":401,"message":"Unauthorized"}]},"response":null}

错误。响应标头也包含Status Code:401 Unauthorized。 我做错了什么?

1 个答案:

答案 0 :(得分:11)

401并且任何错误代码都会命中errorInterceptor,而不是responseInterceptor。只有成功的响应才会调用responseInterceptor!