headers.set 未设置授权 header
headers.set doesn't set the Authorization header
下面是摘自 this tutorial 的代码片段,但由于我使用的是 Angular 5,所以我将 headers.append
更改为 headers.set
。
但是,我仍然会收到 401 Unauthorized
错误,基本上是说我无法使用 JWT 授权我的登录。我尝试使用 POSTMAN 发送接收到的令牌并设置授权 header 没有任何问题,但我的服务器将始终拒绝我下面的代码。
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);
});
});
}
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
将 return HttpHeaders
httpOptions.headers =
httpOptions.headers.set('Authorization', 'my-new-auth-token');
在您的代码段中,.set
调用的结果未存储在任何地方。
编辑:如果您需要进一步的帮助或解释什么是不可变的,请告诉我。有用 URL https://angular.io/guide/http#update-headers - 查看官方文档总是好的。
下面是摘自 this tutorial 的代码片段,但由于我使用的是 Angular 5,所以我将 headers.append
更改为 headers.set
。
但是,我仍然会收到 401 Unauthorized
错误,基本上是说我无法使用 JWT 授权我的登录。我尝试使用 POSTMAN 发送接收到的令牌并设置授权 header 没有任何问题,但我的服务器将始终拒绝我下面的代码。
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);
});
});
}
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
将 return HttpHeaders
httpOptions.headers =
httpOptions.headers.set('Authorization', 'my-new-auth-token');
在您的代码段中,.set
调用的结果未存储在任何地方。
编辑:如果您需要进一步的帮助或解释什么是不可变的,请告诉我。有用 URL https://angular.io/guide/http#update-headers - 查看官方文档总是好的。