我想为现有的角度$resource服务编写一个包装器服务,以便默认情况下将一些自定义标头添加到http请求中。我知道我们可以使用$httpProvider.defaults.headers.common
设置公共标头。但是这样我的所有请求都会有这个标题,这不是我想要的。
如果$resource
服务可以扩展到包装服务中,我可以定义这些公共标题,这样会更加清晰。这样,无论何处需要添加公共头文件,我都可以选择性地使用此包装器服务。
答案 0 :(得分:0)
这可能不是您正在寻找的答案,但我会分享我的想法。我正在使用角$ http。我这样做的方法是在每次api调用中指定正确的标题。
这样的事情:
authenticatePlayer: function(postData) {
return $http({
method : 'POST',
url : api + 'auth/player',
data : postData,
headers : {'Content-Type' : 'application/json'}
});
},
uploadAvatar: function(email_address, fd) {
return $http({
method : 'POST',
url : api + 'player/' + email_address + '/avatar',
data : fd,
withCredentials: true,
headers : {'Content-Type' : undefined, 'X-Token' : credential.token},
transformRequest: angular.identity //awesome! automatically set to the correct header request
});
},
fbLogin: function(data) {
var xsrf = $.param({fb_access_token: data});
// console.log(postData);
return $http({
method : 'POST',
url : api + '/user/v1/login',
data : xsrf,
headers : {'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'}
});
}
我不是角度方面的专家,但这是我的方式。希望它有所帮助:)