在我的角度应用中,我想使用angular custom header
。我使用以下代码::
Angular Factory
angular.module('app').factory('UserAPI', ['$resource', 'session', function($resource, session) {
var mainUrl = 'http://localhost:8006/dev' + '/users';
return {
getService : function() {
var token = session.getToken();
console.log(token); //token is printed here
return $resource(mainUrl, { }, {
getData: {
method: 'GET',
url: mainUrl + '/:userId/dashboard',
isArray: true,
headers: { 'Token': token }
}
});
}
}
}]);
角度控制器
angular.module('app').controller('UserCtrl', ['$scope', 'UserAPI', function($scope, UserAPI) {
var user = UserAPI.getService();
user.getData({ userId: 'some-user-id' }, {}, function(res) {
}, function(err) {
});
}]);
当我拨打电话user.getUser(......)
时,会生成一个网址,如 GET :: http://localhost:8006/dev/user/some-user-id/dashboard
,而不是 GET :: {{1我的意思是api调用时缺少令牌,虽然我使用http://localhost:8006/dev/user/some-user-id/dashboard?token=SomeVeryLongToken
但仍有问题。
我该如何解决这个问题?
NB headers: { 'Token': token }
"angular": "^1.4.0",
答案 0 :(得分:0)
您将令牌添加为请求标头,而不是查询字符串中的属性。使用第二个(在您的示例中为空)对象添加参数,或直接在控制器中添加它们:
user.getUser({token: 'sometoken'}, {}, function(res) {
}, function(err) {
});
答案 1 :(得分:0)
将headers: { 'Token': token }
更改为params: { 'token': token }