一般情況下,下載分為好幾種,但是常用的是get下載文件流直接下載

post下載文件流是很少見的,但是鑒于參數(shù)太多,不能走get 只能走post下載,post下載分為兩種:
1.form表單下載

2.post返回文件流轉(zhuǎn)成blob下載,研究了很久 也很坑,上代碼:

這個(gè)地方如果responseType設(shè)為blob的話,返回的文件流將會(huì)被轉(zhuǎn)成blob對(duì)象,不是文件流,但是無論怎么設(shè)置都沒有轉(zhuǎn)成blob對(duì)象,網(wǎng)上有很多解釋,一個(gè)是說封裝好的axios設(shè)置responseType是無效的,于是乎,我就引入了原生axios,手動(dòng)添加token認(rèn)證和content-type,但是返回結(jié)果依然是文件流,兜兜轉(zhuǎn)轉(zhuǎn)后來才發(fā)現(xiàn)最坑的是mockjs的引入,mockjs會(huì)影響responseType的設(shè)置轉(zhuǎn)換,項(xiàng)目中注釋掉mockjs即可實(shí)現(xiàn)成功blob的轉(zhuǎn)換,還有就是可以修改mockjs的原生代碼,如果需要用到mockjs的簡(jiǎn)友們可以修改代碼,不過偶同步更新依賴包的時(shí)候記得及時(shí)修改,如果mockjs可以在項(xiàng)目中拋棄的話建議直接main.js中刪除引入,畢竟還有其他的坑。。。
推薦博客地址:
https://blog.csdn.net/weixin_42142057/article/details/97655591