美文网首页
将blob返回值转换为json格式

将blob返回值转换为json格式

作者: 如果俞天阳会飞 | 来源:发表于2022-11-24 09:19 被阅读0次

    封装axios时, responseType: ‘blob’,将影响第一种情况读取reponse为blob,不能直接读取code和msg,此时就需要将blob的内容转成文件读取,不能取消responseType: ‘blob’,取消会影响正常下载


    image.png

    调接口,根据response.data里的type去判断,返回的类型

     if(response.data.type=='application/json'){
        const reader  = new FileReader();  //创建一个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); //创建下载的链接
     downloadElement.href = href;
     downloadElement.download = "下载的文件"+ ".xlsx"; //下载后文件名
     document.body.appendChild(downloadElement);
     downloadElement.click(); //点击下载
     document.body.removeChild(downloadElement); //下载完成移除元素
     window.URL.revokeObjectURL(href); //释放掉blob对象
    

    相关文章

      网友评论

          本文标题:将blob返回值转换为json格式

          本文链接:https://www.haomeiwen.com/subject/twgtfdtx.html