【发布时间】:2021-12-04 03:22:47
【问题描述】:
我有一个运行良好的 API,但是当我将它与 react 一起使用时,get 请求转到
/api/profile/posts/profile/matt
它应该去:
/api/posts/profile/matt
代理在localhost:8000/api 上设置,在使用 react 时对其他 API 工作正常。
调用 API 的代码(只有配置文件一不起作用,其余一切正常,当我使用绝对 URL 时,即使配置文件一也有效):
const res = username
? await axios.get("posts/profile/"+username)
: await axios.get("posts/timeline/6120b0e07ea0361eb4982b1c");
路线代码:
function App() {
return (
<Router>
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/login">
<Login />
</Route>
<Route path="/register">
<Register />
</Route>
<Route path="/profile/:username">
<Profile />
</Route>
</Switch>
</Router>
)
}
这个用户也有类似的问题:How to prevent React-router from messing up your API url
【问题讨论】:
-
React Router 进行部分匹配。将路由定义为
exact,或更改路由名称。 -
你在哪里告诉 react 去寻找 /api/...?也许你在服务中保持不变......添加精确到路线应该可以正常工作
-
我已经尝试添加 exact 但它不起作用,package.json 中的代理设置为 localhost:8000/api
标签: node.js reactjs express axios react-router