【问题标题】:Http service redirect on errorHttp服务重定向错误
【发布时间】:2017-03-29 20:11:44
【问题描述】:

有没有什么方法可以用 Angular 2 创建一个 http 拦截器,让你根据错误重定向到某些路由?例如,当服务响应 404 时转到 /not-found 路由,当它响应 401/403 时转到 /unauthorised 路由。

我尝试将路由器注入我的服务并在错误处理方法中使用它,但它只是抛出此错误

Unhandled Promise rejection: Provider parse errors: Cannot instantiate cyclic dependency!

我以前可以像这样使用 AngularJS 做到这一点:

function authInterceptor ($q, $injector) {
  return {
    request: function (request) {
      return request;
    },
    requestError: function (request) {
      return $q.reject(request);
    },
    response: function (response) {
      return response;
    },
    responseError: function (response) {
      if (response.status === 401 || response.status === 403) {
        $injector.get('$state').go('unauthorised');
      } else if (response.status === 404) {
        $injector.get('$state').go('notFound');
      }

      return $q.reject(response);
    }
  };
}

【问题讨论】:

    标签: angular typescript angular2-routing angular2-services


    【解决方案1】:

    您可以扩展 HTTP 模块并拦截请求和响应。 我写了一个gist 来演示一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      相关资源
      最近更新 更多