Angular "Http failure during parsing for http://localhost:8000/excel"

Angular "Http failure during parsing for http://localhost:8000/excel"

我尝试从 Angular 向我的 Laravel 后端发送 GET 请求。

    Route::get('excel', function () {
    return Excel::download(new PqrsExport, 'products.xlsx');
});

我订阅了这个方法

get_excel(){
    this.pqrService.getExcel().subscribe(
      resp => console.log(resp),
      err => console.log(err)
      );
  }

得到这个

HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:8000/excel", ok: false, …}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
status: 200
statusText: "OK"
url: "http://localhost:8000/excel"
ok: false
name: "HttpErrorResponse"
message: "Http failure during parsing for http://localhost:8000/excel"
error: {error: SyntaxError: Unexpected token P in JSON at position 0 at JSON.parse (<anonymous>) at XMLHtt…, text: "PKVGSPG�D�X�[Content_Types].xml�…heets/_rels/sheet1.xml.relsPK��"}
__proto__: HttpResponseBase

我解决了安装 FileSaver

npm i file-saver

并这样使用

HTML

 <button class="btn btn-success" (click)="get_excel()">Excel</button>

TS 文件

import * as FileSaver from 'file-saver';


 get_excel(){
    return this.http.get('http://localhost:8000/excel',  { responseType: 'blob' })
    .subscribe((resp: any) => {
      FileSaver.saveAs(resp, `filename.xlsx`)
    });
  }