我试图在Angular中使用带有承载令牌的授权发出请求。如果我在Postman中发出请求,则它可以工作。但是,如果我是从Angular制作的,它会给我401 Unauthorized
http错误。
我确定localstorage.getItem('auth_token')
返回的令牌是正确的,因为我在进行检查之前已将其记录下来。
const httpOptions = {
headers: new HttpHeaders(
{ 'Content-Type': 'application/json' ,
Authorization: 'Bearer '+ localStorage.getItem('auth_token')})
};
这是我要使之适用于邮递员的请求:
getProducts(): Observable<string[]> {
console.log(localStorage.getItem('auth_token'));
return this.http.get<string[]>(this.productsURL)
.pipe(
tap(_ => this.log('fetched products')),
catchError(this.handleError('getProducts', []))
);
}
答案 0 :(得分:3)
您的问题是您没有使用创建的标题。
您的代码应如下所示:
return this.http.get<string[]>(this.productsURL, httpOptions)
.pipe(
tap(_ => this.log('fetched products')),
catchError(this.handleError('getProducts', []))
);
请注意.get
构造函数-除了传递URL外,它还传递了您在其中创建不记名令牌的httpOptions
对象。