首页 > 其他分享 >js同一接口返回不同的类型之Edge的兼容

js同一接口返回不同的类型之Edge的兼容

时间:2022-09-20 11:58:01浏览次数:89  
标签:浏览器 接口 兼容 Edge blob reader js

前提:js同一接口返回不同的类型 ,但是这个链接上面的内容的缺点是没有加Edge浏览器的兼容:

今天我们就说说如何加兼容:
1.没有兼容内容的巩固,Chrome浏览器中获取blob的接口返回的没有经过blob处理的数据:
dataWrap是接口数据经blob包装后的内容,blob提供的text()方法,这个方法是个promise,你需要.then的形式拿到他返回的res(res就是我们想要的),
但是这个res 是个字符串哦,记得处理(JSON.parse),至此你已经成功拿到接口返回的数据啦

打印blob内容:

  1. 在Edge浏览器你如果用Chrome中的方法获取没有经过blob处理的数据会遇到下面的报错:
    Edge浏览器的报错:

    进一步打印blob内容,你可以看到Edge的blob的_proto_里面没有text()方法
    这也就是为什么会报"Unhandled promise rejection TypeError:Object does't support property or method 'text'"

解决方法:
详情代码如下:

点击查看代码
console.log(' msSaveBlob ', window.navigator.msSáveB1ob)
if (window.navigator.msSaveBlob) {
  let myblob = new Blob([dataWrap], {type:dataWrap.type})
  let reader = new FileReader()
  reader.readAsText(myblob)

  reader.onload = function () {
    let result = JSON.parse(reader.result)

    taostErrDebounce(result, errMsg)
  }
}

标签:浏览器,接口,兼容,Edge,blob,reader,js
From: https://www.cnblogs.com/duocaishijie/p/16710523.html

相关文章

  • 使用 Amplication 缩短 Node.js 应用程序的上线时间
    使用Amplication缩短Node.js应用程序的上线时间AmplicationStack使用任何技术开发任何应用程序都是一个复杂的过程。我们必须考虑很多事情,比如架构、使用哪些技术......
  • 前端Nodejs-Day34
    Node.js:基于ChromeV8引擎的Javascript运行环境浏览器中js的运行环境:前端运行环境Nodejs中js的运行环境:后端运行环境(无法调用DOM和BOM等浏览器内置API)  ......
  • Three-js入门3-插件stats和dat-GUI.md
    title:Three.js入门3-插件stats和dat.GUIcopyright:truepermalink:8top:0date:2019-01-2702:42:55tags:['three']categories:techpassword:翻译自官方文......
  • JS使用策略模式优化条件选择结构
    这段代码是采用if-else的方式判断多个不同的条件。functionpermission(role){if(role==="operations"){getOperationPermission()}elseif(role=......
  • SpringBoot Xml转Json对象
    一、导入需要的依赖<dependency><groupId>maven</groupId><artifactId>dom4j</artifactId><version>1.7-20060614</version></dependency>二、xml......
  • FastJson 的一些配置
    主要提到:关闭循环引用的配置"$ref":"$.data[0].detail.wmsInboundorder.details[1]"如下:importcom.alibaba.fastjson.serializer.SerializeConfig;importcom.alib......
  • node.js 使用教程-3.gulp-file-include 详细教程
    前言gulp-file-include是gulp插件,它提供了一个include方法让我们可以像后端模板那样把公共部分的页面导入进来,实现html复用。环境准备gulp-file-include是gulp的......
  • 网络字体的兼容写法
    引入网络字体@font-face{font-family:"ShiJin";/*字体名称*/src:url(./fonts/MaoKenShiJinHei-2.ttf);/*字体地址*/}兼容性写法(固定)@font-face{fo......
  • Java:Json与List对象的相互转换
    谷歌的Gson.jar://list转换为jsonGsongson=newGson();List<Person>persons=newArrayList<Person>();Stringstr=gson.toJson(persons);//json转换为listGs......
  • Delphi中TWebBrowser中注入Js
    最近帮朋友做一个软件,其中要自动化某网页中的操作,最简的操作是调用自己写的代码。代码如下:procedureTForm1.Button2Click(Sender:TObject);var i:integer; h:IHTML......