Я вызываю 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);
}
});
}
В администраторе инструмента разработки я получаю информацию в заголовке ответа, но не могу найти ее в переменной ответа.
Вот я использую сервисы Angular, это не совсем то же самое
что невозможно?
передайте ключ наблюдения со значением «response», чтобы получить полный ответ
getData() {
this.http.get(this.url, { observe: 'response' }).subscribe(res => {
this.headerProperty = res.headers.get('property name here');
});
}
Стоит ли импортировать какие-то модули?
Я добавил { observe: 'response' }
в свой запрос, но я не получаю все элементы ответа заголовка, которые я вижу в браузере devtool
Я решил свою проблему, получив информацию из внешнего интерфейса (вместо HTTP-запроса). но я нашел это на github, это может помочь другому человеку github.com/angular/angular/issues/13226
возможный дубликат stackoverflow.com/questions/10548990/…