Получить заголовки из запроса HTTP в Angular

Я вызываю API, который получает данные BLOB-объектов.

бэкэнд отправляет мне также имя файла в заголовке.

Моя настоящая проблема в том, что я не могу получить заголовок из api.

Вот мой service.ts

public openFile(path) {
  let url='/download/';
  let pathFile= new HttpParams().set('pathFile', path);
  return this.httpClient.get(url,{params:pathFile, responseType: 'blob' });

а в component.ts вызываю сервис. когда я пытаюсь распечатать res.headers, я получаю undefined в консоли.

openFile(path){
  this.creditPoliciesService.openFile(path).toPromise().then (data => {
    console.info("dataaaaaa",data.headers); // undefined
    var blob = new Blob([data], {type: 'application/pdf'}); 
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
      window.navigator.msSaveOrOpenBlob(blob);
    }
    else {
      var fileURL = URL.createObjectURL(blob); 
      window.open(fileURL);
    }
  });
}

В администраторе инструмента разработки я получаю информацию в заголовке ответа, но не могу найти ее в переменной ответа.

возможный дубликат stackoverflow.com/questions/10548990/…

Luca Taccagni 02.05.2018 15:00
Чтение полного ответа
Vikas 02.05.2018 15:01

Вот я использую сервисы Angular, это не совсем то же самое

infodev 02.05.2018 15:01

что невозможно?

Vikas 02.05.2018 15:08
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
4
4
10 330
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

передайте ключ наблюдения со значением «response», чтобы получить полный ответ

getData() {
 this.http.get(this.url, { observe: 'response' }).subscribe(res => {
 this.headerProperty = res.headers.get('property name here');

 });
}

Стоит ли импортировать какие-то модули?

infodev 02.05.2018 15:04

Я добавил { observe: 'response' } в свой запрос, но я не получаю все элементы ответа заголовка, которые я вижу в браузере devtool

infodev 03.05.2018 11:00

Я решил свою проблему, получив информацию из внешнего интерфейса (вместо HTTP-запроса). но я нашел это на github, это может помочь другому человеку github.com/angular/angular/issues/13226

infodev 03.05.2018 17:02

Другие вопросы по теме