码迷,mamicode.com
首页 > Web开发 > 详细

XMLHttpRequest 中 blob类型数据转text

时间:2017-09-13 17:18:38      阅读:445      评论:0      收藏:0      [点我收藏+]

标签:rip   转换   字节流   read   header   解决方案   new   result   中间   

景描述ajax接收的数据类型既有blob类型也有text时,不同的类型做不同的处理。如,当下载文件、图片等信息时候,需要字节流responseType = ‘blob‘,同时,如果后台有出错信息需要前台展示,此时需要字符类型responseType = ‘text‘。两个类型不能同时存在。

解决方案都用blob类型接收,然后将blob类型转text类型

实施blob类型无法直接转text类型,需要中间转换

          var blob = xhr.response;  //xhr.response -->blob 数据源
                if(blob.size < 100){      //此处是用来区分后台的数据源是文件、图片流,还是我们的告警信息,(如果是告警信息,size会很短)
                    var fr = new FileReader(); //FileReader可以读取Blob内容  
                    fr.readAsText(blob); //二进制转换成text
                    fr.onload = function (e) {  //转换完成后,调用onload方法
                        var result = fr.result;  //result 转换的结果

---------------------------------------------------------分隔线-----------------------------------------------------------------------------

知识点:

Ajax和XMLHttpRequest: ajax是一种技术方案,但并不是一种新技术。它依赖的是现有的CSS/HTML/Javascript,而其中最核心的依赖是浏览器提供的XMLHttpRequest对象,是这个对象使得浏览器可以发出HTTP请求与接收HTTP响应

FileTeader:用来把文件读入内存,并且读取文件中的数据。

 

XMLHttpRequest 中 blob类型数据转text

标签:rip   转换   字节流   read   header   解决方案   new   result   中间   

原文地址:http://www.cnblogs.com/sg9527/p/7515487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!