經過小女子的不懈努力,終於解決了。
1.第一步:axios 接口請求的一定要傳 ,下圖僅供參考
responseType: 'blob'

2.調用接口
看后台返回的是二進制流還是blob對象
(1)是二進制流需要用 new Blob([res.data], {type: 'application/octet-stream'});
轉化成 Blob對象
(2)那就方便了直接使用
3.拿到文件就開始下載了
let url = window.URL.createObjectURL(res.data); console.log(blob) var a = document.createElement("a"); document.body.appendChild(a); a.href = url; a.download ="aaa.xls"; a.click(); window.URL.revokeObjectURL(url);
按正常情況已經完成了,開心開心,但是事情總是 出其不意,OMG。下載下來的文件竟然打不開,內心。。。
經過很長時間的查找與百度最后終於發現了關鍵地方。
敲黑板 vue項目中使用了mock模擬數據 導致responseType: 'blob'無效,把mock模式關閉,完美 perfect!
以上內容是工作中遇到的問題,如有不妥記得留言哦!