一尘不染

使用Angular $ http下载时文件已损坏

angularjs

我正在使用角度$ http从服务器下载文件。文件类型可以不同。我应该设置请求标头以进行身份​​验证。下载完成后,文件已损坏!这是我在客户端保存文件的代码:

getFile: function(file) {
    $http({
        method: 'GET',
        url: 'download' + "/" + file.name,
        headers: {
            "X-AUTH-TOKEN": "my-token",
            Accept: "*/*",
        }
    }).success(function(data) {
        var fileBlob = new Blob([data], {
            type: '*/*;charset=utf-8'
        });
        saveAs(fileBlob, file.name);
    }).error(function(err) {
        console.log('err', err);
    });
}

阅读 324

收藏
2020-07-04

共1个答案

一尘不染

我最终通过将以下配置添加到ajax请求中解决了该问题:

    dataType : "binary",
    processData : false,
    responseType : 'arraybuffer'

并将Blob类型更改为

“应用程序/八位字节流”

2020-07-04