亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于axios 的responseType類型的設(shè)置方法

 更新時(shí)間:2019年10月29日 09:38:09   作者:zhusf  
今天小編就為大家分享一篇基于axios 的responseType類型的設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

responseType值的類型可為如下

axios請(qǐng)求下載導(dǎo)出一個(gè)文件,請(qǐng)求成功時(shí)返回的是一個(gè)流形式的文件,需要設(shè)置responseType: 'arraybuffer',但是請(qǐng)求失敗的需要返回的是json數(shù)據(jù),

所以需要把a(bǔ)rraybuffer轉(zhuǎn)成Json對(duì)象。

例:

請(qǐng)求設(shè)置了responseType: 'arraybuffer',

請(qǐng)求成功時(shí),下載文件,

請(qǐng)求失敗時(shí),后端返回json對(duì)象,如:{"msg":"系統(tǒng)異常","code":1,"success":false},也被轉(zhuǎn)成了arraybuffer

我的解決方案是,失敗時(shí),將數(shù)據(jù)arraybuffer轉(zhuǎn)成Json對(duì)象就好了。

舉個(gè)例:

api.downloadFile(params).then(res => {    
  if (res.status === 200 && res.data) {     
      var disposition = res.headers['content-disposition']    
      var fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))<br>      let blob = new Blob([res.data], { type: 'application/pdf' }) // 假設(shè)文件為pdf
     let link = document.createElement('a')
     link.href = window.URL.createObjectURL(blob)
     link.download = fileName
     link.click()
     link.remove()
   } else {      // 其它情況
   }
  }).catch(err => {     <br>    var enc = new TextDecoder('utf-8')
    var res = JSON.parse(enc.decode(new Uint8Array(err.data))) //轉(zhuǎn)化成json對(duì)象
    console.log(res)
  }
)

以上這篇基于axios 的responseType類型的設(shè)置方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論