Проблема с получением заголовков в угловых 6? - PullRequest
0 голосов
/ 15 ноября 2018

Вот мой service

executeProcess(): Observable<any> {
    return this._httpClient.post(this.baseUrl + '/api/survey/process/execute', {}, { observe: 'response', responseType: 'text' as 'text' });
}

И в моем компоненте я называю это так

this._httpService.executeProcess().subscribe(res => {
      console.log(res);
}

А это мой res.headers

{
  "normalizedNames": {},
  "lazyUpdate": null,
  "headers": {}
}

с пустым объектом заголовков. В бэкэнде этого API я отправляю заголовок location, который отображается на вкладке сети Chrome. Все работает через вкладку сети Chrome, но в угловой я не могу получить этот заголовок.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы пытались прочитать полный ответ?

HttpClient читал полный ответ

showConfigResponse() {
  this.configService.getConfigResponse()
    // resp is of type `HttpResponse<Config>`
    .subscribe(resp => {
      // display its headers
      const keys = resp.headers.keys();
      this.headers = keys.map(key =>
        `${key}: ${resp.headers.get(key)}`);

      // access the body directly, which is typed as `Config`.
      this.config = { ... resp.body };
    });
}

РЕДАКТИРОВАТЬ:

Также попробуйте выставить свой расположение заголовок с Access-Control-Expose-Headers на вашем бэкэнде.См. Эту ссылку для справки: Использование CORS

Access-Control-Expose-Headers (необязательно) - у объекта XMLHttpRequest 2 есть метод getResponseHeader (), который возвращает значениезаголовок конкретного ответа.Во время запроса CORS метод getResponseHeader () может получить доступ только к простым заголовкам ответа.Заголовки простых ответов определяются следующим образом:

Cache-Control
Content-Language
Content-Type
Expires
Last-Modified
Pragma

Если вы хотите, чтобы клиенты имели доступ к другим заголовкам, вы должны использовать заголовок Access-Control-Expose-Headers.Значением этого заголовка является список заголовков ответов, разделенных запятыми, которые вы хотите предоставить клиенту.

...