场景描述:ajax接收的数据类型既有blob类型也有text时,不同的类型做不同的处理。如,当下载文件、图片等信息时候,需要字节流responseType = 'blob',同时,如果后台有出错信息需要前台展示,此时需要字符类型responseType = 'text'。两个类型不能同时存在。
解决方案:都用blob类型接收,然后将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 转换的结果 } }
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通