Angular 5从web api ClosedXml下载excel文件

Angular 5从web api ClosedXml下载excel文件,angular,http,Angular,Http,我正在尝试在angular应用程序中下载由web api生成的excel文件。应用程序最初是用angularJS编写的,在那里一切都很好。现在,我正在将应用程序迁移到Angular 5,它也可以正常工作,但我收到一个错误消息:类型“arraybuffer”不可分配给类型“json” 它使用HttpClient this.http.post<any>(`${this.appConfig.api}/users`, users, {responseType: 'arraybuffer'})

我正在尝试在angular应用程序中下载由web api生成的excel文件。应用程序最初是用angularJS编写的,在那里一切都很好。现在,我正在将应用程序迁移到Angular 5,它也可以正常工作,但我收到一个错误消息:类型“arraybuffer”不可分配给类型“json”

它使用HttpClient

this.http.post<any>(`${this.appConfig.api}/users`, users, {responseType: 'arraybuffer'})
  .subscribe(
    (next: ArrayBuffer) => {
      console.log(next);
      const file: Blob = new Blob([next], { type: 'application/xlsx' });
      saveAs(file, `Rapport users.xlsx`);
    }
  )
this.http.post(`${this.appConfig.api}/users`,users,{responseType:'arraybuffer'})
.订阅(
(下一步:ArrayBuffer)=>{
console.log(下一步);
常量文件:Blob=newblob([next],{type:'application/xlsx'});
saveAs(文件,`Rapport users.xlsx`);
}
)

如何消除该错误?

将{responseType:'arraybuffer'}更改为{responseType:'arraybuffer'作为'json'}

从angular文档中尝试一下


你能从http post请求中删除{responseType:'arraybuffer'}吗?如果我删除它,请检查excel文件是否已损坏
this.http.get(`${this.appConfig.api}/users`, {responseType: 'blob'})
      .subscribe(
        (data) => {
          console.log(data);
          const file: Blob = new Blob([data], { type: 'application/xlsx' });
          saveAs(file, `Rapport users.xlsx`);
        }
      )