我正在使用一个名为“concurrently”的包在localhost上同时运行我的客户端和服务器。客户端在端口3000上运行,而服务器在端口5000上运行。我在服务器的package.json中以以下方式设置了代理:
"proxy": "https://localhost:5000"
但当我以下列方式向客户提出请求时:
const config = {
headers: {
'Content-Type': 'application/json'
}
};
const res = await axios.post('/api/users', body, config);
它说:POST http://localhost:3000/api/users 404 (Not Found)
。我不明白为什么,但尽管设置了代理,axios仍然向端口3000而不是端口5000发出请求。这是什么问题?
5条答案
按热度按时间wpx232ag1#
我只想说,添加cors的解决方案并不是一个解决方案。你需要在package.json中包含代理
"proxy" : "https://localhost:5000"
,你可能需要重新启动或者其他什么--但是如果你选择使用cors,你就允许任何人访问你的API。这意味着你的数据库是完全开放的,人们可以随意查看。密码、电子邮件、用户等等。这一切都是危险的。nsc4cvqm2#
我把它修好了。我做的是:
1)将
axios.post('/api/users', body, config);
更改为axios.post('http://localhost:5000/api/users', body, config);
2)然后在'users'服务器端的快速路由中,通过安装'cors' npm包来添加CORS功能,然后添加以下行:
zf2sa74q3#
据我所知,您需要的是参考Axios开发人员文档。
svujldwt4#
在我的例子中,我没有检查好,它似乎是调用实际上被转发到代理地址的api服务器。检查服务器是否正在运行,它是否正在接收您的调用。
epggiuax5#
当我发送请求到一个代理服务器时,我代码运行的很成功。2我希望这个答案对你或者其他人有用。