我使用angular $ 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);
});
}
答案 0 :(得分:9)
我最终通过将此配置添加到ajax请求来解决它:
dataType : "binary",
processData : false,
responseType : 'arraybuffer'
并将blob类型更改为
"应用程序/八位字节流"