首页 > 解决方案 > HttpClient.get('/', {观察:'response'}); 不返回所有标题

问题描述

我正在使用HttpClient.get(). 我传入了观察响应的选项,当我访问 时.keys(),除了 . 之外,我没有得到任何其他标头Content-Type

Access-Control-Allow-Origin标头设置为通配符(*),但我仍然只能Content-Type以角度访问标头。我错过了什么?

标头已正确发送到网络选项卡中的浏览器。我还尝试在Access-Control-Allow-Origin.

角应用:

this.data.getClubs(1, 10, '', {clubName: 'asc'}, '').subscribe(
      dataJson => {
        console.log(dataJson.headers.keys());
}
getClubs(page: number, count: number, group: any, sorting: any, filter: any) {
    return this.http.get(this.apiUrl + `/club`, {
      params: {
        count: String(count),
        filter: String(filter),
        group: String(group),
        page: String(page),
        sorting: JSON.stringify(sorting)
      },
      headers: this.getHttpOptions().headers,
      observe: 'response'
    });
}

请查看图片。标头设置为允许访问标头。 https://i.imgur.com/8nS5SbH.png https://i.imgur.com/A1E4Mhh.png

任何帮助,将不胜感激!

标签: angulartypescriptrest

解决方案


这是因为您需要将标头名称添加到access-control-expose-headers后端的参数中。

例如,如果您想公开一个名为“my-custom-header”的标头,那么在后端您需要将此标头添加到access-control-expose-headers参数中,例如

response.set({
 "my-custom-header": 'custom value',
 "access-control-expose-headers": "my-custom-header"
})

希望这会奏效


推荐阅读