vue將后端返回的二進(jìn)制流前端進(jìn)行處理實(shí)現(xiàn)下載文件

【vue】將后端返回的二進(jìn)制流前端進(jìn)行處理實(shí)現(xiàn)下載文件

因?yàn)楹蠖朔祷氐氖沁@樣的二進(jìn)制流,也沒(méi)有返回狀態(tài)碼,所以會(huì)被攔截,需要在request.js文件對(duì)返回的狀態(tài)碼進(jìn)行處理

因?yàn)楹蠖朔祷氐氖沁@樣的二進(jìn)制流称簿,也沒(méi)有返回狀態(tài)碼邮丰,所以會(huì)被攔截铆惑,需要在request.js文件對(duì)返回的狀態(tài)碼進(jìn)行處理

image.png

requests.js里面修改下

// 響應(yīng)時(shí)攔截
service.interceptors.response.use(
  response => {
    const res = response.data
    if (res.code !== 200) {
      Message({
        message: res.message || 'Error',
        type: 'error',
        duration: 5 * 1000
      })
      // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
        MessageBox.confirm('用戶(hù)信息已過(guò)期,請(qǐng)重新登錄', '系統(tǒng)提示', {
          confirmButtonText: '登錄',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          store.dispatch('user/resetToken').then(() => {
            //清空sessionStorage
            clearStorage();
            //清空token過(guò)期時(shí)間
            removeTokenTime();
            location.reload()
          })
        })
      } else if (!res.code) { // 如果沒(méi)有返回code,可能是下載excel
        // return resolve(response.data, res);
        return res
      }
      return Promise.reject(new Error(res.message || 'Error'))
    } else {
      return res
    }
  }, error => {
    console.log('err' + error)
    //清空sessionStorage
    clearStorage();
    //清空token過(guò)期時(shí)間
    removeTokenTime();
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

Content-Type部分媒體類(lèi)型

".*"="application/octet-stream"  
".001"="application/x-001"  
".301"="application/x-301"  
".323"="text/h323"  
".906"="application/x-906"  
".907"="drawing/907"  
".a11"="application/x-a11"  
".acp"="audio/x-mei-aac"  
".ai"="application/postscript"  
".aif"="audio/aiff"  
".aifc"="audio/aiff"  
".aiff"="audio/aiff"  
".anv"="application/x-anv"  
".asa"="text/asa"  
".asf"="video/x-ms-asf"  
".asp"="text/asp"  
".asx"="video/x-ms-asf"  
".au"="audio/basic"  
".avi"="video/avi"  
".awf"="application/vnd.adobe.workflow"  
".biz"="text/xml"  
".bmp"="application/x-bmp"  
".bot"="application/x-bot"  
".c4t"="application/x-c4t"  
".c90"="application/x-c90"  
".cal"="application/x-cals"  
".cat"="application/vnd.ms-pki.seccat"  
".cdf"="application/x-netcdf"  
".cdr"="application/x-cdr"  
".cel"="application/x-cel"  
".cer"="application/x-x509-ca-cert"  
".cg4"="application/x-g4"  
".cgm"="application/x-cgm"  
".cit"="application/x-cit"  
.doc     application/msword
.docx   application/vnd.openxmlformats-officedocument.wordprocessingml.document
.rtf       application/rtf
.xls     application/vnd.ms-excel application/x-excel
.xlsx    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.ppt     application/vnd.ms-powerpoint
.pptx    application/vnd.openxmlformats-officedocument.presentationml.presentation
.pps     application/vnd.ms-powerpoint
.ppsx   application/vnd.openxmlformats-officedocument.presentationml.slideshow
.pdf     application/pdf
.swf    application/x-shockwave-flash
.dll      application/x-msdownload
.exe    application/octet-stream
.msi    application/octet-stream
.chm    application/octet-stream
.cab    application/octet-stream
.ocx    application/octet-stream
.rar     application/octet-stream
.tar     application/x-tar
.tgz    application/x-compressed
.zip    application/x-zip-compressed
.z       application/x-compress
.wav   audio/wav
.wma   audio/x-ms-wma
.wmv   video/x-ms-wmv
.mp3 .mp2 .mpe .mpeg .mpg     audio/mpeg
.rm     application/vnd.rn-realmedia
.mid .midi .rmi     audio/mid
.bmp     image/bmp
.gif     image/gif
.png    image/png
.tif .tiff    image/tiff
.jpe .jpeg .jpg     image/jpeg
.txt      text/plain
.xml     text/xml
.html     text/html
.css      text/css
.js        text/javascript
.mht .mhtml   message/rfc822

四牧牢、responseType

""  responseType 設(shè)為空字符串與設(shè)置為"text"相同,默認(rèn)類(lèi)型
"text"  返回的是包含在 DOMString 對(duì)象中的文本姿锭。
"document"  返回的是一個(gè) HTML Document 或 XML XMLDocument
"arraybuffer"  返回的是一個(gè)包含二進(jìn)制數(shù)據(jù)的 JavaScript ArrayBuffer 
"blob"  返回的是一個(gè)包含二進(jìn)制數(shù)據(jù)的 Blob 對(duì)象
"json"  返回的是一個(gè) JavaScript 對(duì)象 塔鳍。這個(gè)對(duì)象是通過(guò)將接收到的數(shù)據(jù)類(lèi)型視為 JSON 解析得到的。
"ms-stream"  返回的是下載流的一部分 呻此;此響應(yīng)類(lèi)型僅允許下載請(qǐng)求轮纫,并且僅受Internet Explorer支持

版權(quán)聲明:本文為CSDN博主「多啦阿貓的阿貓」的原創(chuàng)文章

原文鏈接:https://blog.csdn.net/weixin_45184157/article/details/125807890

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市焚鲜,隨后出現(xiàn)的幾起案子掌唾,更是在濱河造成了極大的恐慌,老刑警劉巖忿磅,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件糯彬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡葱她,警方通過(guò)查閱死者的電腦和手機(jī)撩扒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吨些,“玉大人搓谆,你說(shuō)我怎么就攤上這事『朗” “怎么了泉手?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)偶器。 經(jīng)常有香客問(wèn)我斩萌,道長(zhǎng)啡氢,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任术裸,我火速辦了婚禮倘是,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袭艺。我一直安慰自己搀崭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布猾编。 她就那樣靜靜地躺著瘤睹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪答倡。 梳的紋絲不亂的頭發(fā)上轰传,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音瘪撇,去河邊找鬼获茬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛倔既,可吹牛的內(nèi)容都是我干的恕曲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼渤涌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佩谣!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起实蓬,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茸俭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后安皱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體调鬓,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年练俐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袖迎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腺晾,死狀恐怖燕锥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悯蝉,我是刑警寧澤归形,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鼻由,受9級(jí)特大地震影響暇榴,放射性物質(zhì)發(fā)生泄漏厚棵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一蔼紧、第九天 我趴在偏房一處隱蔽的房頂上張望婆硬。 院中可真熱鬧,春花似錦奸例、人聲如沸彬犯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谐区。三九已至,卻和暖如春逻卖,著一層夾襖步出監(jiān)牢的瞬間宋列,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工评也, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炼杖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓仇参,卻偏偏與公主長(zhǎng)得像嘹叫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诈乒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355