从 header Angular 获取变量 2
Getting variable from header Angular 2
我想从 header 获取 'Total' 数据,但当 Postman 显示更多时,似乎只有 4 个变量。响应 body 很好,我只是无法在组件中正确访问 header。我怎样才能做到这一点?
如果有任何信息缺失,我会尽快编辑post。
服务功能:
public getAdverts(searchParams){
let url = 'https://znajdzspeca.herokuapp.com/search/jobs'
let headers = new Headers();
headers.append('Content-Type', 'application/json');
if(searchParams.localization instanceof Array)
searchParams.localization = searchParams.localization[0]
let body = JSON.stringify(searchParams)
return this.http.post(url, body, {headers: headers})
.map(response => response)
}
使用该服务的组件函数:
private getAdverts(searchAdvert){
this.advertService.getAdverts(this.searchAdvert)
.subscribe(
response => {
var totalPages = (response.headers.get('Total'));
console.log(totalPages);
console.log(response);
this.results = response.json()
},
error => console.log(error))
}
}
控制台 & postman 日志
http://i64.tinypic.com/206ouao.jpg
问题是您映射了您的响应。 Headers 可以从响应本身到达。所以你需要删除地图运算符。
/*.map(response => response)*/ <----
.subscribe((res) => {
var yourData = res.json();
var headers = res.headers;
});
在访问响应 header 时小心使用 CORS。请记住,自定义 headers 将在同一域中可见。但是,对于跨域情况,服务器必须发送 Access-Control-Expose-Headers: X-Foo, ... header 以使自定义 headers 可见。
我想从 header 获取 'Total' 数据,但当 Postman 显示更多时,似乎只有 4 个变量。响应 body 很好,我只是无法在组件中正确访问 header。我怎样才能做到这一点? 如果有任何信息缺失,我会尽快编辑post。 服务功能:
public getAdverts(searchParams){
let url = 'https://znajdzspeca.herokuapp.com/search/jobs'
let headers = new Headers();
headers.append('Content-Type', 'application/json');
if(searchParams.localization instanceof Array)
searchParams.localization = searchParams.localization[0]
let body = JSON.stringify(searchParams)
return this.http.post(url, body, {headers: headers})
.map(response => response)
}
使用该服务的组件函数:
private getAdverts(searchAdvert){
this.advertService.getAdverts(this.searchAdvert)
.subscribe(
response => {
var totalPages = (response.headers.get('Total'));
console.log(totalPages);
console.log(response);
this.results = response.json()
},
error => console.log(error))
}
}
控制台 & postman 日志 http://i64.tinypic.com/206ouao.jpg
问题是您映射了您的响应。 Headers 可以从响应本身到达。所以你需要删除地图运算符。
/*.map(response => response)*/ <----
.subscribe((res) => {
var yourData = res.json();
var headers = res.headers;
});
在访问响应 header 时小心使用 CORS。请记住,自定义 headers 将在同一域中可见。但是,对于跨域情况,服务器必须发送 Access-Control-Expose-Headers: X-Foo, ... header 以使自定义 headers 可见。