保存服务返回的PDF

Gab*_*ace 7 javascript pdf angularjs

我正在使用FileSaver.jsBlob.js进入Angular JS应用程序来保存REST服务返回的PDF(它返回表示文件的字节数组).

var headers = {headers: {"Authorization":"Bearer "+token, "Accept":"application/pdf"}};

  $http.get(URL, headers)
    .success(function (data) {
      var blob = new Blob([data], {type: 'application/pdf'});
      saveAs(blob, 'contract.pdf');
    });
Run Code Online (Sandbox Code Playgroud)

文件以正确的类型保存,页面数量是正确的,但它是完全空白的.用编辑器打开它,结果它只包含服务器返回的数据的第一部分,就像它被截断一样.

感谢大家的帮助!

Eli*_*rey 8

$ http.get可能无法正确处理二进制数据.尝试$http({method: "GET", url: URL, responseType: "arraybuffer", ...}) (请参阅angularjs)以获取可以放入数据的二进制对象.

您也可以使用,responseType: "blob"因此您甚至不必创建var blob,但我认为responseType具有较少的浏览器支持.