以下是从this tutorial获取的代码片段,但由于我使用的是Angular 5,因此我将headers.append
更改为headers.set
。
但是,我仍会收到401 Unauthorized
错误,基本上我说我无法使用JWT授权登录。我尝试使用POSTMAN发送收到的令牌并设置Authorization标头没有任何问题,但我的服务器将始终拒绝我的代码。
getTodos(){
return new Promise((resolve, reject) => {
let headers = new HttpHeaders();
headers.set('Authorization', this.authService.token);
this.http.get('http://localhost:8080/api/todos', {headers: headers})
.subscribe(data => {
console.log("ok getTodos");
resolve(data);
}, (err) => {
console.log("NO getTodos");
console.log("err",err);
reject(err);
});
});
}
答案 0 :(得分:2)
Immutable set of Http headers, with lazy parsing.
https://angular.io/api/common/http/HttpHeaders
试试这个
import { HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'my-auth-token'
})
};
.set
将返回HttpHeaders
httpOptions.headers =
httpOptions.headers.set('Authorization', 'my-new-auth-token');
在您的代码段中,.set
来电的结果不会存储在任何地方。
编辑:如果您需要进一步的帮助或解释什么是不可变的,请告诉我。有用的网址https://angular.io/guide/http#update-headers - 查看官方文档总是好的。