Это то, что должно быть легко исправить, но правильно знайте, мой разум не может найти решение.
У меня есть такая запись:
getAccordo(filtro: Filter): Observable<Response> {
return this.http.post<Response>(`${this.ENDPOINT}/export`,
filtro,
{observe: 'response', responseType: 'blob' as 'json'}
)
.catch(error => this.handleError(error));
}
И вот где я его использую:
public getAccordo(event: any): any {debugger;
event.preventDefault();
this.accordiService.getAccordo(this.filter).subscribe(
res => {debugger;
const blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const anchor = document.createElement('a');
anchor.href = window.URL.createObjectURL(blob);
anchor.download = Utils.extractHeaders(res);
anchor.click();
},
error => {
console.log(error);
}
);
}
Когда я смотрю консоль Chrome, я вижу, что в заголовках есть content-disposition: attachment; filename="esportazione_accordi_20180905.xlsx"
Но в моем «res» это отсутствует.
![Res](https://i.stack.imgur.com/pCDTL.png)
То, что хотел бы сделать, это получить имя файла и использовать его в anchor.download.
Спасибо за помощь, если вам нужно что-то еще, просто спросите.
EDIT
Это заголовки, которые я получаю от заголовков ответа, я не вижу ни одного из них:
![enter image description here](https://i.stack.imgur.com/SZDhh.png)
На серверной стороне я добавил: .header("Access-Control-Expose-Headers", "content-disposition")
Но все равно это не работает
РЕДАКТИРОВАТЬ 2:
Хорошо, мы приближаемся, мне нужно получить значение «filename» в конце картинки и присвоить его anchor.download.
![enter image description here](https://i.stack.imgur.com/EnQI0.png)