header 没有在 angular $resource 上工作
header is not working on angular $resource
在我的 angular 应用程序 中,我想使用 angular custom header
。我正在使用以下代码::
Angular工厂
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 控制器
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(......)
时,会生成一个 url,就像 GET:: http://localhost:8006/dev/user/some-user-id/dashboard
而不是 GET:: http://localhost:8006/dev/user/some-user-id/dashboard?token=SomeVeryLongToken
,我的意思是 token 在 api 调用中丢失,虽然我使用的是 headers: { 'Token': token }
但仍然问题。
我该如何解决这个问题?
NB "angular": "^1.4.0",
"angular-resource": "^1.4.0",
您正在将令牌作为请求 header 添加,而不是作为查询字符串中的 属性。使用第二个(在您的示例中为空)object 添加参数,或直接在您的控制器中添加它们:
user.getUser({token: 'sometoken'}, {}, function(res) {
}, function(err) {
});
将headers: { 'Token': token }
更改为params: { 'token': token }
在我的 angular 应用程序 中,我想使用 angular custom header
。我正在使用以下代码::
Angular工厂
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 控制器
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(......)
时,会生成一个 url,就像 GET:: http://localhost:8006/dev/user/some-user-id/dashboard
而不是 GET:: http://localhost:8006/dev/user/some-user-id/dashboard?token=SomeVeryLongToken
,我的意思是 token 在 api 调用中丢失,虽然我使用的是 headers: { 'Token': token }
但仍然问题。
我该如何解决这个问题?
NB "angular": "^1.4.0",
"angular-resource": "^1.4.0",
您正在将令牌作为请求 header 添加,而不是作为查询字符串中的 属性。使用第二个(在您的示例中为空)object 添加参数,或直接在您的控制器中添加它们:
user.getUser({token: 'sometoken'}, {}, function(res) {
}, function(err) {
});
将headers: { 'Token': token }
更改为params: { 'token': token }