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

React代理环境下带参数路由导致Axios请求URL异常求助

问题解决:React路由带参数时Axios请求路径错误

问题原因

当路由配置为/confirmation/:token时,当前页面URL为http://localhost:3000/confirmation/xxx(末尾带斜杠层级结构),此时用相对路径api/token/${token}发起请求,浏览器会将其解析为当前路径的子路径,即/confirmation/api/token/xxx,而非预期的根路径下的/api/token/xxx。

而路由不带参数时,页面URL为http://localhost:3000/confirmation(无末尾斜杠),相对路径api/...会被解析为根路径下的请求,因此能正常工作。

解决方案

方案1:使用绝对路径(最直接)

修改Axios请求路径,在开头添加斜杠/,强制从根路径解析:

const response = await axios.get(`/api/token/${token}`)

方案2:配置Axios全局baseURL

在项目初始化Axios的位置(比如单独的axios配置文件)设置baseURL,确保所有请求都基于根路径:

import axios from 'axios';

axios.defaults.baseURL = '/';
// 也可明确指定后端地址:axios.defaults.baseURL = 'http://localhost:3000/';

之后请求时直接写相对路径即可:

const response = await axios.get(`api/token/${token}`)

方案3:统一路由路径的末尾斜杠(可选)

在React Router中给路由路径添加末尾斜杠,保证URL结构一致:

<Route path="/confirmation/:token/" element={<Confirmation />} />

但这种方式需要确保所有跳转和URL访问都带末尾斜杠,可靠性不如前两种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:40:28