Angular2 HTTP 添加授权 header
Angular2 HTTP put add authorization header
我正在尝试使用 Angular 中的 http。我的代码如下所示:
const url ='this is my url';
const headers = new Headers({'Authorization': 'this is my token'});
return this.http.put(url, {headers: headers}).toPromise().then......
但我一直收到 401 Unauthorized 作为请求状态代码。
我试图将我的请求从 Chrome 网络选项卡复制到 Postman,我注意到授权 header 被添加到请求 body,而不是 headers。
这正常吗?
如果我在 Postman 中手动添加授权 header 作为 header 请求将按预期工作。
根据文档 https://angular.io/api/http/Http
Http.put 方法签名是:
put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>
因此,您的第二个参数应该是 data/body,而不是选项。
尝试:
return this.http.put(url, {}, {headers: headers}).toPromise().then......
当您执行 PUT
请求时,您需要提供正文,因为现在您正在将 headers
作为请求的正文传递。所以你的请求应该是
this.http.put(url, body, headers)
https://angular.io/guide/http#adding-headers
我在angular2+框架中使用httpclient时,一般是这样使用的:
import { HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'my-auth-token'
})
};
您是否在 header 秒内检查了 Content-Type
?
如果要在服务层添加set auth header,调用httpClient时,可以使用Http拦截器(https://alligator.io/angular/httpclient-interceptors/)
我正在尝试使用 Angular 中的 http。我的代码如下所示:
const url ='this is my url';
const headers = new Headers({'Authorization': 'this is my token'});
return this.http.put(url, {headers: headers}).toPromise().then......
但我一直收到 401 Unauthorized 作为请求状态代码。 我试图将我的请求从 Chrome 网络选项卡复制到 Postman,我注意到授权 header 被添加到请求 body,而不是 headers。
这正常吗?
如果我在 Postman 中手动添加授权 header 作为 header 请求将按预期工作。
根据文档 https://angular.io/api/http/Http
Http.put 方法签名是:
put(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>
因此,您的第二个参数应该是 data/body,而不是选项。
尝试:
return this.http.put(url, {}, {headers: headers}).toPromise().then......
当您执行 PUT
请求时,您需要提供正文,因为现在您正在将 headers
作为请求的正文传递。所以你的请求应该是
this.http.put(url, body, headers)
https://angular.io/guide/http#adding-headers
我在angular2+框架中使用httpclient时,一般是这样使用的:
import { HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'my-auth-token'
})
};
您是否在 header 秒内检查了 Content-Type
?
如果要在服务层添加set auth header,调用httpClient时,可以使用Http拦截器(https://alligator.io/angular/httpclient-interceptors/)