angularjs – 使用Angular.js拦截器捕获HTTP 401

我想使用Angular.js在单页Web应用程序上实现身份验证。 official Angular documentation建议使用拦截器:
$provide.factory('myHttpInterceptor',function($q,dependency1,dependency2) {
  return {

    // ...

    'responseError': function(rejection) {
      // do something on error
      if (canRecover(rejection)) {
        return responSEOrNewPromise
      }
      return $q.reject(rejection);
    }
  };
});

问题是当服务器发送401错误,浏览器立即停止与“未经授权”的消息,或与登录弹出窗口(当认证HTTP头由服务器发送),但Angular不能捕获与它的拦截器HTTP错误处理,建议。我误解了什么吗?我试过更多的例子在网上找到(例如thisthisthis),但没有一个工作。

在应用程序配置块:
var interceptor = ['$rootScope','$q',"Base64",function(scope,$q,Base64) {
  function success(response) {
    return response;
  }

  function error(response) {
    var status = response.status;
    if (status == 401) {
      //AuthFactory.clearUser();
      window.location = "/account/login?redirectUrl=" + Base64.encode(document.URL);
      return;
    }
    // otherwise
    return $q.reject(response);
  }
  return function(promise) {
    return promise.then(success,error);
  }
}];

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...