第一步:
请求头里加两个属性:
export async function XXX(data){
return request("......"),{
method:"post",
data:data
responseType:"arrayBuffer", // 或者blob
getReponse:true
}
}
第二步:
获取文件名
let result = await XXX(params);
let fileName = result.response?.headers ?.get(‘content-disposition’)?.split(‘attachment;filename=’)[1] || '导出文件.xlsx';
fileName = decodeURI(fileName)
第三步
创建a连接,并下载文件
const link = document.createElement('a');
link.download = fileName;
link.href = URL.createObjectURL(new Blob([result.data]));
link.setAttribute('target','_blank');
link.click()