在Postman中将token放在header中,在Angular中如何写?

发布于 2022-09-12 04:47:05 字数 1180 浏览 18 评论 0

已解决,答案在下面.

一.Postman中,访问成功:
image

二.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)
}

))

})

);

}   

报错如下(跨域问题已经解决):

image

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ζ澈沫 2022-09-19 04:47:05

使用append之后会生成一个新的header对象,如果没重新赋值,那么使用的还是之前那个

城歌 2022-09-19 04:47:05

报什么错?没设置进去还是?

image.png

service里面处理吧

image.png

素染倾城色 2022-09-19 04:47:05

正确答案:

HttpHeader 是一个不可变数据,想要使用append,必须是链式调用!

const headersSEC = new HttpHeaders().append('X-Tableau-Auth', tokenRes).append('Accept', 'application/json')

还需要多学习啊!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文