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

JS中將blob返回值轉(zhuǎn)換為json格式的問(wèn)題小結(jié)

 更新時(shí)間:2023年12月20日 11:13:47   作者:紅噔噔  
這篇文章主要介紹了JS中如何將blob返回值轉(zhuǎn)換為json格式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

今天遇到一個(gè)問(wèn)題,前端通過(guò)調(diào)取后端接口下載excel,后端返回的是兩種情況:

(1)用戶權(quán)限不足,后端返回json格式,如下圖:

(2)有權(quán)限,能夠正常下載,后端返回二進(jìn)制流,如下圖:

封裝axios時(shí), responseType: ‘blob’,將影響第一種情況讀取reponse為blob,不能直接讀取code和msg,此時(shí)就需要將blob的內(nèi)容轉(zhuǎn)成文件讀取,不能取消responseType: ‘blob’,取消會(huì)影響正常下載

調(diào)接口,根據(jù)response.data里的type去判斷,返回的類型

  if(response.data.type=='application/json'){
    const reader  = new FileReader();  //創(chuàng)建一個(gè)FileReader實(shí)例
     reader.readAsText(response.data, 'utf-8'); //讀取文件,結(jié)果用字符串形式表示
     reader.onload=function(){//讀取完成后,**獲取reader.result**
      const  {msg}  = JSON.parse(reader.result);
      this.$Message.error(msg); //彈出錯(cuò)誤提示
     }
   }

如果需要顯示二進(jìn)制流:

 var blob = new Blob([response.data]);
 var downloadElement = document.createElement("a");
 var href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
 downloadElement.href = href;
 downloadElement.download = "下載的文件"+ ".xlsx"; //下載后文件名
 document.body.appendChild(downloadElement);
 downloadElement.click(); //點(diǎn)擊下載
 document.body.removeChild(downloadElement); //下載完成移除元素
 window.URL.revokeObjectURL(href); //釋放掉blob對(duì)象

到此這篇關(guān)于JS中如何將blob返回值轉(zhuǎn)換為json格式的文章就介紹到這了,更多相關(guān)blob轉(zhuǎn)換為json格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論