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

- 发布:2021-11-16 17:15
- 更新:2022-01-12 01:23
- 阅读:2101
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows10
HBuilderX类型: 正式
HBuilderX版本号: 3.2.9
手机系统: Android
手机系统版本号: Android 11
手机厂商: 联想
手机机型: Tab M10
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
- 使用5+接口resolveLocalFileSystemURL获取本地存储里svg的http路径。该步骤确认文件存在。
- 页面中使用renderjs引入d3js,使用d3js访问步骤1的svg路径。
- d3js的访问svg的接口触发了一个fetch请求,经常报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
- 使用5+接口resolveLocalFileSystemURL获取本地存储里svg的http路径。该步骤确认文件存在。
- 页面中使用renderjs引入d3js,使用d3js访问步骤1的svg路径。
- d3js的访问svg的接口触发了一个fetch请求,经常报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
预期结果:
正常执行fetch语句,fetch返回正常内容。
正常执行fetch语句,fetch返回正常内容。
实际结果:
报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
bug描述:
代码流程:
- 使用5+接口resolveLocalFileSystemURL获取本地存储里svg的http路径。该步骤确认文件存在。
- 页面中使用renderjs引入d3js,使用d3js访问步骤1的svg路径。
- d3js的访问svg的接口触发了一个fetch请求,经常报错:Uncaught (in promise) TypeError: Failed to fetch at __uniappview.html:0
复现概率:
复现概率较高,且异常出现后重启应用无法恢复,只有重新安装。
2 个回复
l***@163.com (作者) - liuchaolqx@163.com
自问自答吧。
用d3中封装的fetch确实会有所述的问题。可以通过在自己的网络请求获取svg的内容,然后把svg内容塞到内容节点上,这样就可以绕过问题。
w***@qq.com
。