Javascript 使用transformRequest添加授权标头
这应该很容易,但最终不起作用:(。 我们使用Angular 1.4.3,并尝试在一些API调用之前添加授权头值 长话短说,这里有一个工厂:Javascript 使用transformRequest添加授权标头,javascript,angularjs,Javascript,Angularjs,这应该很容易,但最终不起作用:(。 我们使用Angular 1.4.3,并尝试在一些API调用之前添加授权头值 长话短说,这里有一个工厂: angular.module('xxx').factory('factory', function ($resource, addBasicAuth) { return $resource(baseUrl, {}, { query: {method: 'GET', isArray: true, transformRequest: addBa
angular.module('xxx').factory('factory', function ($resource, addBasicAuth) {
return $resource(baseUrl, {}, {
query: {method: 'GET', isArray: true, transformRequest: addBasicAuth},
...
});
});
而addBasicAuth
如下所示:
angular.module('xxx').factory('addBasicAuth', function ($rootScope) {
return function (data, headersGetter) {
var user = ($rootScope.user);
headersGetter().Authorization = 'Basic ' + Base64.encode(user.username + ':' + user.password);
return angular.toJson(data);
};
});
理论上,所有这些都应该可以正常工作,但由于我不理解的原因,requestHeader没有被触及(在开发者工具/Network-Chrome中检查)
我做错了什么?谢谢!我的同事帮我解决了以下问题: 我们使用
标题来代替transformRequest
,如下所示:
angular.module('xxx').factory('factory', function ($resource, addBasicAuth) {
return $resource(baseUrl, {}, {
query: {
method: 'GET',
isArray: true,
headers: addBasicAuth()
},
...
});
});
而addBasicAuth
现在是一个出厂功能:
angular.module('xxx').factory('addBasicAuth', function ($rootScope) {
return function () {
var user = ($rootScope.user);
return {'Authorization': 'Basic ' + Base64.encode(user.username + ':' + user.password)};
};
});
很有魅力。这不管用。看看