React中使用Axios向MongoDB提交数据时出现404 Not Found错误求助
排查Axios提交数据时404 Not Found错误的步骤
1. 检查后端路由的挂载配置
你在productRoute.js里定义的是/add-product路由,但前端请求的路径是/api/products/add-product,这意味着必须在主服务器文件(比如app.js或server.js)中将productRoute挂载到/api/products路径下,确保存在类似代码:
const productRoute = require('./path/to/productRoute'); app.use('/api/products', productRoute);
如果缺少这一步,后端只会识别/add-product路径,前端请求的完整路径无法匹配,直接返回404。
2. 验证Axios实例的基础URL配置
确认你的axiosInstance是否设置了正确的baseURL。比如后端服务运行在http://localhost:5000,则axios实例需要配置:
const axiosInstance = axios.create({ baseURL: 'http://localhost:5000', // 替换为你的后端实际运行地址 // 其他配置如请求头、超时时间等 });
若未配置baseURL,前端会把请求发送到当前前端页面的域名下(比如http://localhost:3000/api/products/add-product),该路径在前端服务器上不存在,自然返回404。
3. 核对请求路径的拼写与格式
- 确保前端请求的
/api/products/add-product和后端挂载后的完整路径完全一致,注意大小写(比如Add-Product和add-product是不同路径)、末尾是否存在多余斜杠(比如/api/products/add-product/); - 检查后端
router.post("/add-product", ...)中的路径是否没有多余前缀,因为挂载时已经通过/api/products添加了前缀。
4. 排查authMiddleware的影响
虽然404是路径匹配问题,但如果authMiddleware内部逻辑错误(比如未调用next(),或错误重定向到不存在的路径),也可能导致返回404。可以临时注释掉authMiddleware,测试请求是否能正常命中路由,若能正常响应,再检查中间件代码是否存在问题。
额外调试技巧
打开浏览器开发者工具的Network标签,查看实际发送的请求URL,确认请求地址是否正确指向后端服务的目标路由,这能快速定位路径类问题。
内容的提问来源于stack exchange,提问作者Tuseef ashraf
相关产品推荐
相关产品推荐

