下載文件,vue請求后台接口,返回的是二進制流,所以前端需要進行一點操作
如果沒用框架,貌似直接將后台接口寫進a標簽href里即可,但是還是需要在請求頭里加上token https://blog.csdn.net/m0_37149617/article/details/100933234 此鏈接是 a標簽下載文件加token
vue用的axios請求
1、 import axios from 'axios' (安裝不贅述)
2、在導出按鈕點擊事件上
batchExport() { let url = ""; //請求下載文件的地址 let token = ; //獲取token axios .get(url, { headers: { token: token }, responseType: "blob" }) .then(res => { if (!res) return; let blob = new Blob([res.data], { type: "application/vnd.ms-excel;charset=utf-8" }); let url = window.URL.createObjectURL(blob); let aLink = document.createElement("a"); aLink.style.display = "none"; aLink.href = url; aLink.setAttribute("download", "xxx.xls"); // 下載的文件 document.body.appendChild(aLink); aLink.click(); document.body.removeChild(aLink); window.URL.revokeObjectURL(url); }) .catch(error => { this.$message.error(error); }); }