У меня есть приложение Angular 7, которое вызывает функцию ASP.NET Web API, которая возвращает данные в форме .xlsx
файла Excel обратно в Angular.
Используя этот код, я затем создаю невидимый тег <a>
и щелкаю его, чтобы начать загрузку этого двоичного файла на клиент:
this.reportService.createReport(this.reportOption,
(data) => {
const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display: none');
a.href = url;
a.download = fileName;
a.click();
window.URL.revokeObjectURL(url);
a.remove();
},
(error: string) => {
this.messsageService.showError(error);
});
Этот код работает безупречно в Firefox и Chrome - никаких проблем.
Но в MS Edge по какой-то причине загрузка не началась. Я не вижу никаких ошибок в консоли Javascript, там просто написано «Загрузка успешно запущена» - но пользователю не предлагается указать, где сохранить файл - и файл также не загружается в сконфигурированном каталоге загрузки по умолчанию .
Есть идеи? Кто-нибудь еще видел это с Edge и нашел для этого решение?