Javascript 通过axios下载后XLSX文件损坏

Javascript 通过axios下载后XLSX文件损坏,javascript,excel,Javascript,Excel,我尝试使用axios在Vue应用程序中创建XLSX文件。我这样做: 首先,我向后端控制器发送post调用: return axios({ url: '/backend/article/exportApi', method: 'POST', reponseType: 'blob', headers: { 'Accept': 'vnd.ms-excel'

我尝试使用axios在Vue应用程序中创建XLSX文件。我这样做:

首先,我向后端控制器发送post调用:

return axios({
            url: '/backend/article/exportApi',
            method: 'POST',
            reponseType: 'blob',
            headers: {
                'Accept': 'vnd.ms-excel'
            },
            data: {headers: headers, articles: articles}
        });
然后在后端我做一些事情,创建一个xlsx文件并将其保存在服务器上。这个文件很好,当我检查它时,我可以在excel中打开它。现在,我希望该文件由浏览器自动下载,因此在我的控制器中,我执行此操作($file是服务器上创建的xlsx文件的路径):

响应如下所示:在JS端,我对响应执行以下操作:

let blob = new Blob([response.data], {type: 'vnd.ms-excel;charset=utf-8'});
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'export.xlsx';
link.click();
下载的文件已损坏,无法用Excel打开。我尝试了几件事,包括将类型从
vnd.msexcel
更改为
application/vnd.openxmlformats of cedocument.spreadsheetml.sheet
,并将
响应类型从
blob
更改为
arraybuffer
。没有人能成功


有人有解决方案吗?

原因是POST不接受响应类型。因此,我需要先发出POST调用,然后发出GET请求来检索和创建文件

let blob = new Blob([response.data], {type: 'vnd.ms-excel;charset=utf-8'});
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'export.xlsx';
link.click();