spring - Angular6 принимает пустой объект вместо blob


0

Spring Boot отправляет в потоке данные (excel файл) для клиента:

    @PostMapping(value = "/excel")
public void exportExcel(@RequestBody List<EventExportParam> cols, HttpServletResponse response) throws IOException {
    Workbook workbook = exportService.getEventExportExcel(cols);
    response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=events.xls");
    response.setContentType("application/vnd.ms-excel");
    workbook.write(response.getOutputStream());
    response.getOutputStream().flush();
    response.getOutputStream().close();
    workbook.close();
}

Код на сервера рабочий, проблема именно на стороне клиента. Код клиента:

  downloadExcel() {
    this.eventService.exportExcel(this.exportCols).subscribe(data => {
      console.log(JSON.stringify(data));
    });
  }

eventService:

public exportExcel(exportCols: string[]): Observable<any> {
    return this.http.post(http://localhost:9080/export/excel, exportCols, {responseType: blob});
  }

На выходе получаю { } объект

Источник
  •  154
  •  0
  • 8 янв 2019 2019-01-08 05:41:13
Вы правы, все получилось. Спасибо :) — 8 янв 20192019-01-08 06:27:13.000000
если в консоли браузера сделать JSON.stringify(new Blob()) - то также получите {}, зачем вы стрингифаете блоб? — 8 янв 20192019-01-08 06:02:18.000000

Ответов пока нет