Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 下载文件后出错-角度_Angular_Typescript_Download_Blob_Arraybuffer - Fatal编程技术网

Angular 下载文件后出错-角度

Angular 下载文件后出错-角度,angular,typescript,download,blob,arraybuffer,Angular,Typescript,Download,Blob,Arraybuffer,我有一个执行数据下载的函数。它生成一个.xlsx文件。它按预期工作。功能是 public downloadData(employeesFiltered: boolean){ this.DataService.getDataDownload(this.DataService.getDataObject(), employeesFiltered) .subscribe((data: Response) => { let fileName = this.utility.getFileNam

我有一个执行数据下载的函数。它生成一个.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:UINT16数组的字节长度应为2的倍数

而且

SyntaxError:意外标记筛 在JSON中的位置0

记录在下面

不知何故,下面对API的调用似乎已损坏


任何帮助都将不胜感激

问题不应该与下载本身有关,而应该与您处理异常的方式有关。我想,这与这个错误有关。json不是一个函数


我发现这可能就是您需要的。

您可以尝试使用
data:Response
body
类似的
let blob:blob=new blob([data['''u body']],{type:contentType})?不。相同的结果。
backend.service.ts
的第204行有什么内容?你的程序似乎在抱怨这行指令的语法。我知道异常处理得不好,但这不是问题所在。但是你能展示一下你的服务代码吗?