You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用fetch请求本地Node.js服务时URL被自动修改的原因是什么

URL被修改的常见原因及排查方向
  • 最常见原因:触发请求的按钮位于<form>表单标签内,你没有阻止表单的默认提交行为
    表单默认提交逻辑会把表单内name="input"的输入框值作为query参数拼到表单的action属性对应的地址后面,如果你没有给表单设置action,默认就是当前页面地址也就是http://localhost:3000/,所以就出现了你看到的/?input=house的GET请求。你写的fetch代码还没执行完成,页面就已经被表单默认提交行为触发的请求覆盖了。
    修复方法:给表单的submit事件回调添加e.preventDefault(),或者把按钮的type属性显式设置为button(表单内按钮默认type为submit,会触发提交)。
  • 排查点2:确认你写的fetch代码实际被执行
    可以在fetch调用的位置加断点或者console.log,确认触发请求时这段代码有没有真的运行,有可能你实际触发的是另一段写了带query参数请求的逻辑,而非你贴的这段fetch代码。
  • 排查点3:检查是否存在全局请求拦截/路径改写规则
    如果你配置了fetch的全局拦截器、前端路由重定向规则,或者后端Express配置了301/302重定向(比如把/search/house重定向到/?input=house),也会出现这个情况。如果是后端重定向导致的,网络面板里会先出现一条状态码为3xx的/search/house请求记录。

内容的提问来源于stack exchange,提问作者yamyam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:57:02