在Postman中将token放在header中,在Angular中如何写?
已解决
,答案在下面.
一.Postman中,访问成功:
二.Angular中 header设置错误:
描述: 第一次请求返回 token
后,第二次请求应该将 token
加在什么位置 ?
getInfo(): Observable<any> {
const httpThis = this;
const headers = new HttpHeaders().set('Content-Type', 'application/json')
.set('Content-Type', 'application/x-www-form-urlencoded');
const body = '<tsRequest>' +
'<credentials name="admin" password="abc1#@365" >' +
'<site contentUrl=""/>' +
'</credentials>' +
'</tsRequest>';
const hdr = { headers };
return httpThis.http.post(this.uri_tableau + 'api/3.8/auth/signin', body, hdr)
.pipe(map(
(res: {credentials: Token}) => {
return res.credentials.token;
res.credentials.token); // 拿到 token
}),
mergeMap((tokenRes: string) => {
headers.append('X-Tableau-Auth', tokenRes) //此处如何设置?
console.log(tokenRes)
return httpThis.http.get(this.uri_tableau + 'api/3.9/sites', hdr)
.pipe(map(
(sitesRes: {sites: SitesId}) => {
console.log(sitesRes.sites)
}
))
})
);
}
报错如下(跨域问题已经解决):
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用append之后会生成一个新的header对象,如果没重新赋值,那么使用的还是之前那个
报什么错?没设置进去还是?
service里面处理吧
正确答案:
HttpHeader
是一个不可变数据,想要使用append,必须是链式调用!const headersSEC = new HttpHeaders().append('X-Tableau-Auth', tokenRes).append('Accept', 'application/json')
还需要多学习啊!