AngularJS为$ http.get添加头文件
问题描述:
我正在尝试为将来的HTTP请求添加包含令牌的'Authorization'头文件。取回令牌似乎没问题,但是当发出get请求时,它会失败并显示未经授权的错误消息。检查请求头Authorization头后不请求块存在......
window.crUtil = /*window.crUtil ||*/ (function() {
// Angular Services
var $injector = angular.injector(['ng']);
var $http = $injector.get('$http');
// getting the CFF data
function get_data() {
\t \t getJWTAWS();
var url = '/AWS/getDATA/555';
\t \t \t \t 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 ");
});
}
\t \t
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()返回一个值,但我对这个主题是新我不能,如果十分确定我将标记添加到标题的方式是正确的。 您能否请您提供正确的方式在请求中包含标题。我也尝试将其添加到获取请求,如 $ http.get(URL,httpHeaders)... 但它也没有工作。
答
尝试在配置块中加入这一点,并设置令牌在rootscope
$httpProvider.interceptors.push({
request: function (config) {
config.headers.Authorization = $rootScope.token;
return config;
}
})
答
我不知道我完全理解你的问题,因为你没有提供你叫什么
httpConfig
如果你正在努力申报头,尝试进行这样的GET请求:
$http({
method: 'GET',
url: YOUR_URL,
headers: {
'Content-Type': 'application/json',
'Authorization': AUTH_STRING_HERE
}
}).then(function (response) { ... });
您可以在标题对象中添加任何标题。