问题:
在直接调用后端下载接口时,经过封装的二次函数,前端收到的接口响应会是有堆乱码
于是进行了以下操作
1.调用的接口不能经过自己写的封装
//导出excel
export const $exportExcel = ({ data = {} } = {}) => http.post('libraryBooks/exportExcel', data, {
responseType: 'blob',//最关键的一步
transformResponse: (d) => {
return { code: 200, data: d }
},
headers: { Authorization: localStorage.getItem('token') }
})
2.在调用的地方添加这些代码
async excelimport() {
let a = await $exportExcel();
var blob = new Blob([a.data], { type: a.data.type });
var link = document.createElement("a");
link.href = URL.createObjectURL(blob);
link.download = "导出.xlsx";
link.click();
},
如此就能解决