如何在Svelte应用中使用Axios请求CSV文件?
问题原因
该报错是Axios v0.23.0版本的已知内置缺陷:调用axios.get()方法时如果不传第二个可选的配置对象参数,内部的mergeConfig函数逻辑异常,就会抛出你遇到的Cannot convert undefined or null to object错误,该问题和Svelte框架无关,所以你用fetch调用可以正常返回结果。
解决方案
可任选以下一种方式修复:
- 方式一:给当前
axios.get调用补充第二个空配置对象参数即可,修改请求代码为:
const locations = await axios.get( "https://docs.google.com/spreadsheets/d/e/2PACX-1vQOGtpeb5QsunVCaYXto2CGdYNOy5tDa42nZuTW198hswSmoTZUQv-LUAXMwpnSq76eHcV6aNO-Epya/pub?output=csv", {} );
如果需要避免Axios自动解析返回结果,可将空配置替换为{ responseType: 'text' },更适配CSV文件的读取场景。
- 方式二:升级Axios到v0.24.0及以上版本,该版本已经修复了配置合并的缺陷,升级后原有代码无需修改即可正常运行。
- 方式三:直接使用已经验证可用的fetch接口获取CSV文件,后续用CSV解析工具处理返回内容即可。
内容的提问来源于stack exchange,提问作者sprucegoose
相关产品推荐
相关产品推荐

