2021/05/18 json格式错误
api.js里面的接口名重复(修改后还是报错),本来想着放弃了,以为今天是搞不定的了,但是在最后终于让我找到了答案,一下是我解题步骤:
先看控制台Network--Preview报错:返回:两个http://localhost/undefined、一个刷新页面接口、一个获取菜单接口
1、确定排查方向:我向几个有可能出错的地方做了打印:logo.js、BasicLayout.jsx、http.js,最终确定是定位在了http.js,
因为很明显报错信息就是源自这里,而且往logo.js、BasicLayout.jsx打印也没得出关键信息,便决定在这里深入排查;
2、阅读报错信息:刷新页面接和获取菜单接口能返回想要的数据,正常,但是这两个http://localhost/undefined我就看不懂(后来理解为:后台拿不到前台传递的参数,参数有误拼接为undefined),
3、打印:刚开始时我是以为刷新接口或者菜单接口有问题,会不会是执行了两边刷新和两边菜单接口呢,于是我就去了http.js那里打印,打印一看,果然:
打印出4条接口url,两条是undefined,另外两条分别是刷新和菜单的接口,那么问题来了,这个接口url显示为undefined的是什么呢,
我一度以为这是刷新(获取菜单)一遍,第二遍系统再次执行接口(后来才知道不是),我是打印那个前台传递给后台的api地址的,我一直在打印这个,没法了我就随便打印点其他什么东西,
结果有了惊人的发现!
结果:打印某个参数,发现那两个undefined指向没有在api.js记录的接口!!简而言之,页面加载触发了一个组件里面的api,但是这个api没有记录在api.js里面,
结果导致获取到未定的接口,当获取到未定义接口,后台拿到的就是http://localhost/undefined,
有趣的是,当react挂载失败时,也就是http://localhost/undefined会指向一个没有js的html模板,而这个模板是react挂载的根节点,这也就是为什么一点击http://localhost/undefined会弹出一个页面的原因。
答案:在api.js里面记录那两个接口,或者直接删掉它们。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧