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);
}]);