最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在vue中使用axios實(shí)現(xiàn)post方式獲取二進(jìn)制流下載文件(實(shí)例代碼)

 更新時(shí)間:2019年12月16日 08:54:28   作者:大師兄  
這篇文章主要介紹了在vue中使用axios實(shí)現(xiàn)post方式獲取二進(jìn)制流下載文件的相關(guān)資料,需要的朋友可以參考下

需求

點(diǎn)擊導(dǎo)出下載表格對(duì)應(yīng)的excel文件

在 vue 項(xiàng)目中,使用的 axios ,后臺(tái) java 提供的 post 接口 api

實(shí)現(xiàn)

第一步,在 axios 請(qǐng)求中加入?yún)?shù),表示接收的數(shù)據(jù)為二進(jìn)制文件流

responseType: 'blob'

第二步,在拿到數(shù)據(jù)流之后,把流轉(zhuǎn)為指定文件格式并創(chuàng)建a標(biāo)簽,模擬點(diǎn)擊下載,實(shí)現(xiàn)文件下載功能

let blob = res.data
let reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
 let a = document.createElement('a')
 a.download = fileName
 a.href = e.target.result
 document.body.appendChild(a)
 a.click()
 document.body.removeChild(a)
}

問題

使用 axios 會(huì)出現(xiàn)無法拿到 java 后端給出的 Content-Disposition 中的文件名

注意的是,瀏覽器中可以看到header中有信息,但是無法通過 axios 的 res.header 獲取到

 

這種情況需要后端設(shè)置 header

Access-Control-Expose-Headers: Content-Disposition

有可能后端加了之后還是獲取不到,那么讓后端單獨(dú)加一個(gè)fileName字段即可

response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + UUID.randomUUID().toString() + ".xlsx");
response.setHeader("FileName", UUID.randomUUID().toString() + ".xlsx");
response.setHeader("Access-Control-Expose-Headers", "FileName")

總結(jié)

完整的 axios 代碼

axios.post({
 url:`url`,
 method:`post`,
 responseType: 'blob'
}).then(res => {
 let blob = res.data
 let reader = new FileReader()
 reader.readAsDataURL(blob)
 reader.onload = (e) => {
  let a = document.createElement('a')
  a.download = `fileName.xlsx`
  a.href = e.target.result
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
 }
})

ps:vue-axios的使用方法(簡(jiǎn)單易懂)

1.vue-axios插件的安裝

使用 npm:

$ cnpm install axios

2.在main.js中添加(添加到原型鏈上)

import axios from 'axios';
Vue.prototype.axios = axios;

完活,然后就可以隨便在任何組件開始用了,耶!^-^!

例子:

this.axios.post('http://ai.yiche.com/web/ability/nlu/standardTokenizer', {
     "text": "動(dòng)效如果有跟評(píng)審結(jié)論有出入的地方或者不清楚的地方,隨時(shí)溝通哈~"
    }).then(function(res) {
     console.log(res.data);
    }).catch(function(err) {
     if (err.response) {
      console.log(err.response)
     }
    });

以上所述是小編給大家介紹的在vue中使用axios實(shí)現(xiàn)post方式獲取二進(jìn)制流下載文件,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • create?vite?實(shí)例源碼解析

    create?vite?實(shí)例源碼解析

    這篇文章主要為大家介紹了create?vite?實(shí)例源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Vue異步組件使用詳解

    Vue異步組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue異步組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue中data的基礎(chǔ)匯總

    vue中data的基礎(chǔ)匯總

    這篇文章主要介紹了vue如何重置data、組件中的data為什么是一個(gè)函數(shù)、為什么new Vue里的data可以是一個(gè)對(duì)象,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前元素以外的地方隱藏當(dāng)前元素(實(shí)現(xiàn)思路)

    Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前元素以外的地方隱藏當(dāng)前元素(實(shí)現(xiàn)思路)

    這篇文章主要介紹了Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前元素以外的地方隱藏當(dāng)前元素,文中給大家擴(kuò)展了vue實(shí)現(xiàn)點(diǎn)擊其他地方隱藏div的三種方法,需要的朋友可以參考下
    2019-12-12
  • v-show和v-if的區(qū)別?及應(yīng)用場(chǎng)景

    v-show和v-if的區(qū)別?及應(yīng)用場(chǎng)景

    這篇文章主要介紹了v-show和v-if的區(qū)別及應(yīng)用場(chǎng)景,vue中v-show與?v-if的作用效果是相同的,都能控制元素在頁(yè)面是否顯示,但是也有一定的區(qū)別,下面文章梳理總結(jié)v-show和v-if的區(qū)別,需要的小伙伴可以參考一下
    2022-06-06
  • 基于javascript的拖拽類封裝詳解

    基于javascript的拖拽類封裝詳解

    這篇文章主要介紹了基于javascript的拖拽類封裝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue項(xiàng)目實(shí)現(xiàn)添加圖片裁剪組件

    vue項(xiàng)目實(shí)現(xiàn)添加圖片裁剪組件

    這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目實(shí)現(xiàn)添加圖片裁剪組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 簡(jiǎn)單了解前端漸進(jìn)式框架VUE

    簡(jiǎn)單了解前端漸進(jìn)式框架VUE

    這篇文章主要介紹了前端漸進(jìn)式框架VUE的相關(guān)資料,文中講解的非常細(xì)致,幫助大家開始學(xué)習(xí)VUE,感興趣的朋友可以了解下
    2020-07-07
  • vue3+Element采用遞歸調(diào)用封裝導(dǎo)航欄實(shí)現(xiàn)

    vue3+Element采用遞歸調(diào)用封裝導(dǎo)航欄實(shí)現(xiàn)

    本文主要介紹了vue3+Element采用遞歸調(diào)用封裝導(dǎo)航欄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • vue中如何簡(jiǎn)單封裝axios淺析

    vue中如何簡(jiǎn)單封裝axios淺析

    Axios 毋庸多說大家在前端開發(fā)中常用的一個(gè)發(fā)送 HTTP 請(qǐng)求的庫(kù),用過的都知道,篇文章主要給大家介紹了關(guān)于vue中如何簡(jiǎn)單封裝axios的相關(guān)資料,需要的朋友可以參考下
    2021-06-06

最新評(píng)論

肃宁县| 镇远县| 从化市| 蓝山县| 兴宁市| 墨江| 潜江市| 衡阳县| 炎陵县| 乌拉特后旗| 大庆市| 顺平县| 调兵山市| 云梦县| 洪泽县| 壶关县| 博罗县| 门头沟区| 昭觉县| 梁山县| 长阳| 南京市| 漳浦县| 南澳县| 德庆县| 工布江达县| 泾源县| 阳谷县| 林甸县| 徐汇区| 怀仁县| 同心县| 华安县| 容城县| 察哈| 安康市| 菏泽市| 扎兰屯市| 阳信县| 尉犁县| 巴林左旗|