vue使用axios接收流文件的實(shí)現(xiàn)
在工作中遇到使用axios接收流文件,遇到了一些問題,整理如下:
在調(diào)用接口成功后如圖所示:

現(xiàn)在需要調(diào)試下axios.js文件統(tǒng)一攔截
// 導(dǎo)出
const headers = response.headers
//console.log(headers['content-type']) 將打印的值,也將后臺(tái)返回的相應(yīng)頭設(shè)置成相同的,我的就是'application/octet-stream;charset=UTF-8',然后返回response
if (headers['content-type'] == 'application/octet-stream;charset=UTF-8') {
return response;
}
現(xiàn)在需要注意headers[‘content-type’] 不一定是 ‘application/octet-stream;charset=UTF-8’
在接口調(diào)用時(shí)需要設(shè)置axios的相應(yīng)類型,responseType: “blob”
this.axios({
method: "get",
url: "/dafw/cljsdc",
params: data,
responseType: "blob"
})
.then(res => {
let blob = new Blob([_res]);
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
downloadElement.href = href;
downloadElement.download = "xxx.xls"; //下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //點(diǎn)擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
window.URL.revokeObjectURL(href); //釋放掉blob對(duì)象
...
之后就會(huì)下載成功…
到此這篇關(guān)于vue使用axios接收流文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)vue axios接收流文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3中實(shí)現(xiàn)組件通信的方法總結(jié)
在Vue3中,有多種方法可以實(shí)現(xiàn)組件之間的通信,本文就通過代碼示例給大家總結(jié)一些vue3實(shí)現(xiàn)組件通信的常用方法,需要的朋友可以參考下2023-06-06
Vue純前端如何實(shí)現(xiàn)導(dǎo)出簡(jiǎn)單Excel表格的功能
這篇文章主要介紹了如何在Vue項(xiàng)目中使用vue-json-excel插件實(shí)現(xiàn)Excel表格的導(dǎo)出功能,包括安裝依賴、引入插件、使用組件、設(shè)置表頭和數(shù)據(jù)、處理空數(shù)據(jù)情況、源代碼修改以解決常見問題,需要的朋友可以參考下2025-01-01
在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟
這篇文章主要介紹了在Vue環(huán)境下利用worker運(yùn)行interval計(jì)時(shí)器的步驟,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
vue單頁(yè)面應(yīng)用打開新窗口顯示跳轉(zhuǎn)頁(yè)面的實(shí)例
今天小編就為大家分享一篇vue單頁(yè)面應(yīng)用打開新窗口顯示跳轉(zhuǎn)頁(yè)面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-09-09

