l***@163.com
l***@163.com
  • 发布:2021-11-16 17:15
  • 更新:2022-01-12 01:23
  • 阅读:2101

【报Bug】fetch操作经常有报错:Failed to fetch at __uniappview.html:0

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows10

HBuilderX类型: 正式

HBuilderX版本号: 3.2.9

手机系统: Android

手机系统版本号: Android 11

手机厂商: 联想

手机机型: Tab M10

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

d3js中触发fetch的代码:
function text(input, init) {
console.log("text(input, init)")
console.log(input)
console.log(init)
return fetch(input).then(responseText);
}
其中input是本地svg文件的url,例如:http://localhost:13131/_www/static/draws/thickness/9/100e2.svg

操作步骤:
  1. 使用5+接口resolveLocalFileSystemURL获取本地存储里svg的http路径。该步骤确认文件存在。
  2. 页面中使用renderjs引入d3js,使用d3js访问步骤1的svg路径。
  3. d3js的访问svg的接口触发了一个fetch请求,经常报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0

预期结果:

正常执行fetch语句,fetch返回正常内容。

实际结果:

报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0

bug描述:

代码流程:

  1. 使用5+接口resolveLocalFileSystemURL获取本地存储里svg的http路径。该步骤确认文件存在。
  2. 页面中使用renderjs引入d3js,使用d3js访问步骤1的svg路径。
  3. d3js的访问svg的接口触发了一个fetch请求,经常报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
    复现概率:
    复现概率较高,且异常出现后重启应用无法恢复,只有重新安装。
2021-11-16 17:15 负责人:无 分享
已邀请:
l***@163.com

l***@163.com (作者) - liuchaolqx@163.com

自问自答吧。
用d3中封装的fetch确实会有所述的问题。可以通过在自己的网络请求获取svg的内容,然后把svg内容塞到内容节点上,这样就可以绕过问题。

w***@qq.com

该问题目前已经被锁定, 无法添加新回复