0

我正在使用 httpResponseInterceptor 来检查过期的会话令牌。我能够检测到它并通过向我的用户发出很好的通知来结束我的会话,但我仍在寻找一种方法让控制台不输出请求错误:

GET http://api.xx.xx/accounts/82 401(未经授权)

这是我的代码的简化版本:

responseError: function(rejection) {
      if(rejection.status === 401 && rejection.data.error === "Token expired"){

        //notify user of being logged out if they were logged in
        [...]

        //destroy session (will also unset cookies)
        LoginService.destroy();

      }
      return $q.reject(rejection);
    }

需要明确的是:我确实想拒绝承诺,因为应该取消一些活动进程。我只是不想要错误信息。

谢谢你的帮助!

4

1 回答 1

0

您可以使用 Angular 的装饰器“装饰”异常处理程序:

angular.module('yourapp').config(function ($provide) {
    // catch exceptions in angular
    $provide.decorator('$exceptionHandler', ['$delegate', function ($delegate) {
        return function (exception, cause) {
            var message = exception.message;
            if (message != 'YOUR ERROR TO AVOID') {
                $delegate(exception, cause); // If this does not execute - no log would be printed to console
            }
        }

    }])
});
于 2015-02-17T11:03:50.940 回答