我试图添加'授权'包含用于将来HTTP请求的令牌的标头。检索令牌似乎没有问题,但是在发出get请求时,它会因未经授权的错误消息而失败。检查请求标头后,请求块中不存在授权标头...
window.crUtil = /*window.crUtil ||*/ (function() {
// Angular Services
var $injector = angular.injector(['ng']);
var $http = $injector.get('$http');
// getting the CFF data
function get_data() {
getJWTAWS();
var url = '/AWS/getDATA/555';
console.log('AUTH header before call: ' + $http.defaults.headers.common.Authorization);
$http.get(url,httpHeader).then(function successCallback(response) {
var data = response.data;
var cff = initCff();
alert(data.itemId);
}, function errorCallback(response) {
initCff();
alert("Error while getting data ");
});
}
function getJWTAWS() {
var httpConfig = {
cache: true,
params: {}
};
$http.get('/AWS/token', httpConfig).then(
function(response) {
if (response.data.accessToken) {
// add jwt token to auth header for all requests made by the $http service
$http.defaults.headers.common.Authorization = response.data.tokenType + ' ' + response.data.accessToken;
}
},
function(error) {
alert('jwt token could not be retrieved.');
}
);
}
})();
var result = util.get_data();
console.log ('called search function ' + result);

函数getToken()返回一个值但是因为我在该主题上是新的,我不太确定将标记添加到标题的方式是否合适。 您能告诉我们在请求中包含标题的正确方法吗?我也尝试将它添加到get请求中 $ http.get(URL,httpHeaders)... 但它也没有用。
答案 0 :(得分:2)
我不确定我完全理解你的问题,因为你没有提供所谓的
httpConfig
如果您正在努力声明标头,请尝试按以下方式发出获取请求:
$http({
method: 'GET',
url: YOUR_URL,
headers: {
'Content-Type': 'application/json',
'Authorization': AUTH_STRING_HERE
}
}).then(function (response) { ... });
您可以在标题对象中添加您喜欢的任何标题。
答案 1 :(得分:0)
尝试在配置块中添加此功能,并在您的rootscope中设置令牌
$httpProvider.interceptors.push({
request: function (config) {
config.headers.Authorization = $rootScope.token;
return config;
}
})