【发布时间】:2017-09-30 12:04:19
【问题描述】:
我正在使用 Angular 4.4.4,我需要为 GET 请求设置 Authorization 标头。我研究了文档和代码来弄清楚如何做到这一点。结果是这样的:
const headers = new Headers({ Authorization: this.auth.accessToken});
this.http.get('/api/Messages', { headers } as RequestOptionsArgs)
但是,这不起作用。请求是在没有标头选项的情况下发出的。
但如果我按照以下方式进行操作
const options = { headers: {Authorization: this.auth.accessToken} as any};
return this.http.get('/api/Messages', options as RequestOptionsArgs)
它有效。
但我希望第一次尝试也能奏效。有人可以向我解释我的第一次尝试有什么问题或向我解释正确的方法是什么吗?
【问题讨论】:
-
我也希望第一次尝试能够奏效。您使用的是
@angular/http还是@angular/common/http? -
我正在使用
@angular/http。奇怪的是,如果我调试并进入角度代码,我很快就会看到类似这样的内容:this.headers = new Headers(requestOptions.headers);但requestOptions.headers已经是Headers的一个实例。这没有任何意义 -
在第一个 'headers:' 键丢失。您正在分配没有密钥 {{ Authorization: this.auth.accessToken}} 而不是 {headers:{ Authorization: this.auth.accessToken}}
-
你的意思是我做
{headers}而不是{headers: headers}?但是这两个在es2015/typescript中是一样的 -
是的,他们是,考虑到你在问这个问题,这就是问题所在。 stackoverflow.com/questions/43612837/… 的可能重复项。症状不同,但问题是一样的。
标签: angular typescript http-headers angular2-http