我想为现有的 angular $resource服务编写一个包装服务,以便默认情况下将一些自定义标头添加到 http 请求中。我知道我们可以使用$httpProvider.defaults.headers.common
. 但是这样我所有的请求都会有这个头,这不是我想要的。
$resource
如果该服务可以扩展为一个包装服务,我可以在其中定义这些公共标头,那将会更加简洁。这样,我可以在需要添加公共标头的任何地方选择性地使用此包装服务。
我想为现有的 angular $resource服务编写一个包装服务,以便默认情况下将一些自定义标头添加到 http 请求中。我知道我们可以使用$httpProvider.defaults.headers.common
. 但是这样我所有的请求都会有这个头,这不是我想要的。
$resource
如果该服务可以扩展为一个包装服务,我可以在其中定义这些公共标头,那将会更加简洁。这样,我可以在需要添加公共标头的任何地方选择性地使用此包装服务。
这可能不是您正在寻找的答案,但我会分享我的想法。我正在使用角度 $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'}
});
}
我不是角度方面的专家,但我就是这样做的。希望能帮助到你 :)