我正在尝试通过API下载.xls文件,但输出文件格式不正确,它看起来像这样:
这是我的代码:
exportData: function() {
let items_ids = [];
this.$refs['vue-items-reports-table'].selectedRows.forEach(function (arrayItem) {
var x = arrayItem.id;
items_ids.push(arrayItem.id);
});
this.$http.get('/api/items-reports/', {'params': {'file_format': this.export_format, 'items': items_ids.toString()}}).then(function(response){
let blob = new Blob([response.data], {type:response.headers.get('content-type')});
filename = response.headers.map['content-disposition'][0].split('filename=')[1];
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename.replace('"', '').replace('"', '');
link.click();
})
}
当我将端点URL直接放在浏览器中时,文件格式是正确的,因此Vue部分存在问题。
答案 0 :(得分:0)
我假设您正在使用vue-resource
进行HTTP调用。
尝试使用reponse.blob()
(它返回一个承诺),并将该结果用于下载。