Tar*_*are 6 node.js express reactjs axios
我正在使用一个名为“并发”的包在本地主机上同时运行我的客户端和服务器。客户端在端口 3000 上运行,而服务器在端口 5000 上运行。我已按以下方式在服务器的 package.json 中设置代理:
"proxy": "https://localhost:5000"
Run Code Online (Sandbox Code Playgroud)
但是当我以以下方式向客户提出请求时:
const config = {
headers: {
'Content-Type': 'application/json'
}
};
const res = await axios.post('/api/users', body, config);
Run Code Online (Sandbox Code Playgroud)
它说:POST http://localhost:3000/api/users 404 (Not Found)。我不明白为什么,尽管设置了代理,axios 仍然不断向端口 3000 而不是端口 5000 发出请求。问题是什么?
我只是想说,添加cors的方案并不是解决方案。"proxy" : "https://localhost:5000"您需要在 package.json 中包含代理,您可能需要重新启动或其他操作 - 但如果您选择使用 cors,则您将允许任何人访问您的 API。这意味着您的数据库是完全开放的,可供人们查阅。密码、电子邮件、用户等都已被泄露。
我让它工作正常。我所做的是:
1)axios.post('/api/users', body, config);改为axios.post('http://localhost:5000/api/users', body, config);
2) 然后在服务器端的“users”快速路由中,通过安装“cors”npm 包来添加 CORS 功能,然后添加以下行:
const router = express.Router();
...
// add these lines
var cors = require('cors');
router.use(cors());
...
router.post('/', async (req, res) => {
...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31942 次 |
| 最近记录: |