嘿,我实现了一个GET请求的api 现在我想要的是Response Header值,但api响应中仅显示其中一些,但在Network标签中,每个值都显示 我不知道是什么问题
这是我的Http服务
pendingResultData(payload: Payload, headerConfig?: {}) {
const params = payload
? {
type: payload.type,
data_scopes: payload.data_scopes,
observe: 'response',
...headerConfig
}
: { observe: 'response', ...headerConfig };
const reqUrl = '/api/data_capture';
return this.timerService.timer(this.httpService.getFullResponse(reqUrl, params));
}
这是我的拦截器
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.idToken = this.authService.getAccessToken() || '';
// cloning original request and set/add new headers
const authReq = req.clone({
headers: this.idToken
? req.headers
.set('Authorization', `Bearer ${this.idToken}`)
.set('Access-Control-Allow-Origin', '*')
.set('Content-Type', 'application/json')
.set("Access-Control-Expose-Headers", "*")
: req.headers,
params: req.params
});
return next.handle(authReq);
}
现在标题出现在响应标题中,您可以在屏幕截图中看到
我想要总计,当前页,每页,但是我在api响应中得到的标题是
headers: "content-length: 194
content-type: application/json; charset=utf-8
cache-control: max-age=0, private, must-revalidate"
我想知道我做错了什么,这是否是后端问题? 有什么帮助吗? 谢谢
答案 0 :(得分:2)
您可以通过用户response.headers.get()
方法访问它们。例如:
this.httpService.getFullResponse(reqUrl, params).subscribe(response=> {
console.log(response.headers.get('per-page'));
});
答案 1 :(得分:0)
我认为您必须在后端响应中将自定义标头添加到“ access-control-expose-headers”。在上方的屏幕截图中,看起来它们不在列表中。
(https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers)
https://github.com/angular/angular/issues/5237#issuecomment-441081290