如何防止Angular中的错误记录?

时间:2015-02-17 10:56:33

标签: angularjs angular-http-interceptors

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

  

获取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);
    }

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你可以装饰'带有角度装饰器的异常处理程序:

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
            }
        }

    }])
});