如何使用文件保护程序以角度6下载.xls文件

时间:2019-08-26 07:35:27

标签: javascript angular6

我试图从服务器下载.xls文件,但是它抛出如下所示的错误:->

错误是:

  

SyntaxError:意外令牌-JSON中JSON.parse位置0   ()在XMLHttpRequest.onLoad   (http://localhost:4200/vendor.js:31219:51)在   ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask   (http://localhost:4200/polyfills.js:2761:31)在Object.onInvokeTask   (http://localhost:4200/vendor.js:72221:33)在   ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask   (http://localhost:4200/polyfills.js:2760:36)在   Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask   (http://localhost:4200/polyfills.js:2528:47)在   ZoneTask.push ../ node_modules / zone.js / dist / zone.js.ZoneTask.invokeTask   [in invokeTask的[as invoke](http://localhost:4200/polyfills.js:2836:34)   (http://localhost:4200/polyfills.js:3880:14)在   XMLHttpRequest.globalZoneAwareCallback   (http://localhost:4200/polyfills.js:3906:17)文本:“��ࡱ�;��”

在我的组件中,我实现了调用服务的功能,并且我正在使用文件保护程序来保存文件,但是会抛出错误。

download.component.ts:->

import * as FileSaver from 'file-saver';
     export_licence(){
        this.service.export_licence().subscribe((file: Blob) => {
          FileSaver.saveAs(file,'degreeCertificate.xls');
        }, (err) => {
          console.log("Download Error:", err);
        });
      }

download.service.ts:->

export_licence() {
  return this.http.post(this.export_licence_url,{responseType: "blob"});
}

我应该能够从服务器下载.xls文件,我们将提供任何帮助。

2 个答案:

答案 0 :(得分:0)

检查正确设置的响应标题(针对内容类型),并确保文件未损坏。

似乎重复downloading xlsx file in angular 2 with blob

答案 1 :(得分:0)

这对我有用

download.component.ts:->

--exitonerror

在使用中,我正确添加了标题。

download.service.ts:->

import * as FileSaver from 'file-saver';
     export_licence(){
        this.service.export_licence().subscribe((file: Blob) => {
          FileSaver.saveAs(file,'degreeCertificate.xls');
        }, (err) => {
          console.log("Download Error:", err);
        });
      }