第一次獲取這樣的數(shù)據(jù),無從下手啊,百度吧
其實(shí)很簡(jiǎn)單,首先在axios.post的請(qǐng)求中把默認(rèn)的 " responseType:‘json’ " 改為" responseType:‘blob’ "; 這塊要敲黑板了,我栽在這里了,一直沒有修改,所以下載下來的文件打開后一直提示,如圖
設(shè)置成blob后打開無壓力!
然后按正常的請(qǐng)求接口的方式獲取到了這個(gè)文件流,可能是response.data,也可能直接就是response,這個(gè)看你們后端人員如何返回了, 獲取到的文件流我們用blob轉(zhuǎn)一下,
let blob = new Blob([res], {type: "application/vnd.ms-excel"}); // res就是接口返回的文件流了
let objectUrl = URL.createObjectURL(blob);
window.location.href = objectUrl;
這樣不需要再有其他操作了,直接就可以導(dǎo)出文件了.
忘了,得注意blob里的這個(gè)type,要根據(jù)你們的需要更換文件類型啊,可以參考一下這個(gè) https://www.cnblogs.com/yjmBlogs/p/9493726.html , 我需要導(dǎo)出的是列表數(shù)據(jù),所以選的是’application/vnd.ms-excel’,就會(huì)導(dǎo)出.xls的文件來,你們根據(jù)需求換啊