【发布时间】:2019-07-28 12:39:02
【问题描述】:
Angular HttpClient 似乎不发送标头。 我检查了网络调用(谷歌浏览器),我看到标题显示在请求有效负载部分,而不是显示在请求标题部分。 代码和网络调用截图附在下面。
服务:
submitproduct(url: string){
const httpOptions = {
headers: new HttpHeaders().set('Authorization','Token '+localStorage.getItem('token')),
body: new HttpParams().set('url',url)
};
return this.httpClient.post(this.baseUrl + '/custom/products/', httpOptions);
}
更新
将服务代码更改为
let headers = new HttpHeaders().set('Content-Type', 'application/json')
.set('Authorization','Token '+token);
return this.httpClient.post(this.baseUrl + '/custom/products/', product , {
headers,
})
仍然面临同样的问题,正在发送数据而没有发送标头。
我还为其中一个 API 尝试了 fetch 方法并且工作正常。
fetch(baseUrl + '/auth/login-check/', {
method: "GET",
headers: new Headers({'Authorization': 'Token ' + token})
}).then((response) => {
return response.json();})
.then((returnedData) => {
if (returnedData['success']){
this.logged_in = true;
}
else{
this.logged_in = false;
}
}).catch((error) => {
console.log(JSON.stringify(error.message))
});
}
【问题讨论】:
-
post的第二个参数是消息正文,而不是选项。 angular.io/guide/http#making-a-post-request -
@R.Richards 我将代码更改为
return this.httpClient.post(this.baseUrl + '/custom/products/',null , httpOptions);仍然没有发送请求标头。改变的是我现在看不到请求有效负载。
标签: angular typescript httpclient