下载文件后出错 - Angular

时间:2017-10-10 17:47:11

标签: angular typescript download blob arraybuffer

我有一个执行数据下载的功能。它会生成.xlsx文件。它按预期工作。功能是

public downloadData(employeesFiltered: boolean){

this.DataService.getDataDownload(this.DataService.getDataObject(), employeesFiltered)
.subscribe((data: Response) => {
  let fileName = this.utility.getFileName(data.headers);
  let contentType = this.utility.getContentType(data.headers);

  let blob: Blob = new Blob([data.arrayBuffer()], {type: contentType});
  console.log(blob);

  let a = window.document.createElement("a");
  a.href = window.URL.createObjectURL(blob);
  a.download = fileName;

  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);

}

问题是,完成此操作后,无论我在应用程序中执行什么操作,都会抛出错误

  

RangeError:Uint16Array的字节长度应为2的倍数

而且,

  

SyntaxError:位于0的JSON中的意外标记

记录下面

Error shown in console

不知何故,看起来以下对API的调用被破坏了。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

问题应该与下载本身无关,而是与处理异常的方式有关。我想,这与此错误有关error.json is not a function

我发现这可能是你需要的answer