Java 设置头授权的角度拦截器导致api返回错误

Java 设置头授权的角度拦截器导致api返回错误,java,angularjs,jersey,authorization,angular-http-interceptors,Java,Angularjs,Jersey,Authorization,Angular Http Interceptors,我创建了一个拦截器来设置标头授权: .config(['$httpProvider', function($httpProvider) { var httpAuthInterceptor = [ 'AuthStateService', function(AuthStateService) { return { 'request': function(config) { var user = AuthStateService.getCurre

我创建了一个拦截器来设置标头授权:

.config(['$httpProvider', function($httpProvider) {
    var httpAuthInterceptor = [ 'AuthStateService', function(AuthStateService) {
      return {
        'request': function(config) {
          var user = AuthStateService.getCurrentUser();
          var token = AuthStateService._getToken();
          if (token) {
            config.headers['Authorization'] = 'Basic' + user + ':' + token;
          }
          return config || $q.when(config);
        }
      };
    }];

    $httpProvider.interceptors.push(httpAuthInterceptor);
}]);
因此,当我调用下面的服务时,服务(数据)返回3次(OK)

我的api方法:

@Path("user/{user}/pass/{pass}")
@GET
@Produces({ MediaType.APPLICATION_JSON  + ";charset=utf-8"})
public String getUserData(@PathParam("user") String user, @PathParam("pass") String pass) {
  if (user != "" && pass != ""){
    //test
    return "OK"
  }
  return "NOK"
}
我已经检查过了,api方法调用了3次。我不知道发生了什么事

当我注释标题授权行时,api方法只调用了1次。怎么了

.config(['$httpProvider', function($httpProvider) {
    var httpAuthInterceptor = [ 'AuthStateService', function(AuthStateService) {
      return {
        'request': function(config) {
          var user = AuthStateService.getCurrentUser();
          var token = AuthStateService._getToken();
          //if (token) {
          //  config.headers['Authorization'] = 'Basic' + user + ':' + token;
          //}
          return config || $q.when(config);
        }
      };
    }];

    $httpProvider.interceptors.push(httpAuthInterceptor);
}]);

我意识到这是我的web.xml中的一个问题,我无意中复制了我的过滤器

“只打一条电话”是什么意思?为什么返回字符串而不是JSON?使用回调而不是返回承诺会使代码难以分析。考虑从“代码”中返回承诺和链接。然后承诺/ <代码>方法。你会得到同样的功能,还有一个额外的好处,那就是可以避免比赛条件。嗨,乔治,这只是一个测试。我真的不认为,因为我使用了回调而不是承诺是问题的关键。
.config(['$httpProvider', function($httpProvider) {
    var httpAuthInterceptor = [ 'AuthStateService', function(AuthStateService) {
      return {
        'request': function(config) {
          var user = AuthStateService.getCurrentUser();
          var token = AuthStateService._getToken();
          //if (token) {
          //  config.headers['Authorization'] = 'Basic' + user + ':' + token;
          //}
          return config || $q.when(config);
        }
      };
    }];

    $httpProvider.interceptors.push(httpAuthInterceptor);
}]);