我的.get请求检索标头值时遇到问题。
在我的API中我有Max-range:65
- 这些值告诉我DB中存在多少项。因为我通过10得到它们我知道服务器上存在多少项是非常重要的。我如何在我的请求中获取此信息?它看起来像:
在我的服务中,我有一个方法:
public getRequest(params, refresh?: boolean): Observable<any> {
const getUrl = '/coreapi/request';
return this.http
.get(getUrl, {params})
.map((result: Obj[]) => {
for (const item of result) {
const unit = new Test(
item.id,
item.value);
this.unitSet.push(unit);
}
return this.unitSet;
});
}
在组件中我订阅了这个:
this.sub
.do(() => {
// do something
})
.distinctUntilChanged()
.switchMap((data: any) => {
return this.service.getRequest(data.httpParams, data.refresh);
})
.subscribe((result: Unit[]) => {
this.units = result;
});
----编辑
但我从12列表中只得到这个标题:
{"pragma" => "pragma"},
{"content-type" => "content-type"},
{"cache-control" => "cache-control"},
{"expires" => "expires"}
您知道如何获取自定义标题吗?
答案 0 :(得分:0)
我找到了答案,但在Angular docs中并不清楚。
现在默认的http请求有默认选项:observe:&#39; body&#39;,因此响应不会返回标题。
获得身体和身体这个标题我们应该设置为&#39;响应&#39;。
所以在我的例子中我应该使用:
const observeVal = 'response'
return this.http
.get(this.apiUrl + getCurses, {params: params, observe: observeVal})
默认为:
const observeVal = 'body'
return this.http
.get(this.apiUrl + getCurses, {params: params, observe: observeVal})