You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Axios.delete请求返回404错误?前后端URL一致却请求失败

Axios.delete请求404排查方案
  • 第一步:先验证后端接口本身是否可用
    使用Postman或者curl工具直接调用后端接口测试,示例命令:
    curl -X DELETE http://localhost:3001/delete/1
    
    如果调用后返回正常,说明问题出在前端;如果调用也报404,直接排查后端问题即可。
  • 第二步:检查实际请求的URL是否匹配
    打开浏览器调试工具的「网络」面板,找到你发出的delete请求,查看完整的请求地址:
    • 确认端口是否是3001,有没有出现后端服务实际运行端口被占用、自动改成其他端口未同步前端的情况
    • 确认id参数是否有效,如果id是undefined/null,请求地址会变成http://localhost:3001/delete/undefined,无法匹配后端路由
  • 第三步:排查后端路由配置问题
    • 确认delete路由代码写在app.listen()启动服务代码之前,Express的路由必须在服务启动前注册才会生效
    • 确认没有前置路由先匹配到了请求,Express路由是从上到下顺序匹配的,如果前面有同路径的其他请求方法路由(比如app.get('/delete/:id')),会先拦截请求
    • 可以在delete路由第一行加打印日志,触发请求时看后端控制台有没有输出,验证请求是否成功走到该路由,同时修正你原代码的参数取值问题:
      app.delete('/delete/:id', (req, res) => {
        console.log('收到删除请求,参数id为:', req.params.id)
        // 原代码直接用id属于未定义变量,需要从req.params取路径参数
        const id = req.params.id
        db.query("DELETE FROM employees WHERE id = ?", id, (err, result) => {
          if (err) {
            console.log(err)
            res.status(500).send(err)
          } else {
            res.send(result)
          }
        })
      });
      
  • 第四步:检查服务运行状态
    确认Express服务没有崩溃、正常运行中,有没有出现控制台报错导致服务终止的情况。

补充:如果测试后端接口正常、前端请求地址也完全匹配,可检查React项目是否配置了全局请求拦截器,有没有对请求路径、请求方法做篡改处理。

内容的提问来源于stack exchange,提问作者Maxi Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:36:01