欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS中將blob返回值轉換為json格式的問題小結

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

今天遇到一個問題,前端通過調取后端接口下載excel,后端返回的是兩種情況:

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

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

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

調接口,根據response.data里的type去判斷,返回的類型

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

如果需要顯示二進制流:

 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(); //點擊下載
 document.body.removeChild(downloadElement); //下載完成移除元素
 window.URL.revokeObjectURL(href); //釋放掉blob對象

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

相關文章

最新評論