Node.js 如何使用React路由器从React.js的子路径修复错误的代理重定向?

Node.js 如何使用React路由器从React.js的子路径修复错误的代理重定向?,node.js,reactjs,http,express,Node.js,Reactjs,Http,Express,我正在用React Router制作一个多页面应用程序,我正在使用Node作为后端。 节点在端口3000上工作,并在端口3001上作出反应。 我已经在前端(React)的package.json中设置了一个代理。 我的API可在本地主机上访问:3000/API/ 因此,我使用axios从前端(端口:3001)获取或发布的内容如下所示: axios.post('api/login/',{data........}) 它可以从父路径(如/item或/example)完美地工作 ... 我可以在端口

我正在用React Router制作一个多页面应用程序,我正在使用Node作为后端。 节点在端口3000上工作,并在端口3001上作出反应。 我已经在前端(React)的package.json中设置了一个代理。 我的API可在本地主机上访问:3000/API/ 因此,我使用axios从前端(端口:3001)获取或发布的内容如下所示:

axios.post('api/login/',{data........})
它可以从父路径(如/item或/example)完美地工作 ... 我可以在端口3000上访问我的/api/login

但是从一个像或。。。我在控制台中看到get或post请求被发送到 在这些情况下,代理无法正确重定向

我已经找到了避免子路径的解决方案,但我想知道到底发生了什么,解决方案是什么

提前感谢您的帮助

<Router history={history}>
<NavBar history={history} refresh={this.state.refresh}/> 
<Switch>
<Route exact path="/" render={(props) => <MainPage history= 
{history} />}/>

<Route exact path="/item" history={history} component= 
{ComponentX1} />

<Route exact path="/example" history={history} component= 
{ComponentX2} />

<Route exact path='/another/ex' history={history} component= 
{ComponentY1}/>

<Route exact path='/xxxxxx/example' history={history} component=    
{ComponentY2}/>

</Switch>
<Footer/>
</Router>

}/>

我想了解正在发生的情况。

使用必须具有这样的路径

axios.post("/api/login", { ...data }) // Included '/' at the beginning
另外,检查package.json中的代理是否也是这样

...
proxy: 'http://localhost:3000' // not '/' at end.
...

如果您有任何疑问,请在评论中与我联系。

Hi@Naveen Vignesh。感谢您抽出时间回答。代理在使用api/login时设置正确,因为我在前端从localhost:3001/login进行调用,但如果我想从user/login到达api的相同点,那么我的前端尝试到达:localhost:3001/user/login/api/login,而不是localhost:3000/api/login,在这种情况下,代理似乎不起作用。正如@Naveen指出的,axios调用中需要前面的斜杠。将
axios.post('api/login/',{data……..})更改为
axios.post('/api/login/',{data……..})
。这将解决将子路径添加到api调用中的问题。@BrandonMitchell这将解决问题,但其背后的原因是什么。我想知道在添加斜杠后,斜杠到底发生了什么。为什么?//开头包含了“/”。这一行救了我一天!