我是棱角分明的新人。我无法读取REST服务响应头中的令牌(jwt)。我该如何阅读标题?这是我的代码:
loginUser(loginUser:Login,callback: (data) => void){
let body = JSON.stringify(loginUser)
const headerJson = {
'Content-Type': 'application/json'
}
let options = { headers: new HttpHeaders( headerJson ) };
return this.http.post(this.config.datiBean.urlLoginToken, body,options).subscribe(
res =>{
console.log("body :"+JSON.stringify(res)); //ok
callback(res);
}
/// at this point how can I read headers?
)};
}
感谢您的帮助
答案 0 :(得分:2)
我的方法很可能不正确。我用这种方式修改了我的方法:
loginUser(loginUser:Login,callback: (data) => void){
let creds = JSON.stringify(loginUser);
let contentHeader = new HttpHeaders({ "Content-Type":"application/json" });
this.http.post(this.config.datiBean.urlLoginToken, creds, { headers: contentHeader, observe: 'response' })
.subscribe(
(resp) => {
console.log("TOKEN: "+resp.headers.get('X-Auth'))
console.log("body: "+JSON.stringify(resp.body))
callback(resp)
},
(resp) => {
console.log("resp-error");
console.log(resp);
}
);
};
现在它可以正常工作
答案 1 :(得分:0)
迭。
如果您正在使用NG4和现已弃用的http类,那么我认为您应该尝试收集订阅中的键和值。 https://v4.angular.io/api/http/Headers#values
但请注意,您只能使用公开的标头。您可以使用Access-Control-Expose-Headers添加列表。
res =>{
console.log("body :"+JSON.stringify(res)); //ok
callback(res);
headerKeys = res.headers.keys(); // this will provide an array of strings for the exposed headers
}