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

Web开发新手求助:联系表单提交问题(404+req.body未定义)

解决联系表单的两个常见问题

嘿,作为Web开发新手遇到这些问题太正常了,我帮你一步步拆解解决:

问题1:Postman请求后req.body字段为undefined

这个问题几乎都是因为后端没配置请求体解析中间件导致的,邮件能发送说明你的邮件服务逻辑是通的,但拿不到表单数据。给你两个关键修复步骤:

  • 如果你用的是Express框架,在后端代码的路由定义之前,一定要加上这两行中间件代码:
    app.use(express.json()); // 解析JSON格式的请求体
    app.use(express.urlencoded({ extended: true })); // 解析表单编码的请求体
    
  • 检查Postman的请求配置:
    • 如果是发送JSON数据,确保请求头里的Content-Type设置为application/json,并且在Body里选择raw->JSON格式填写数据;
    • 如果是发送表单数据,选择form-data或x-www-form-urlencoded,对应后端的urlencoded中间件会自动解析。

问题2:前端提交报404 (Not Found)

这个错误原因很明确:前端请求的地址和后端服务的地址不匹配。你的后端跑在localhost:3001,但前端发请求到了localhost:3000(前端自己的服务端口)。有两种简单的解决方式:

  • 直接修改前端的请求地址,把http://localhost:3000/api/contactus改成http://localhost:3001/api/contactus;
  • 配置前端代理(推荐,上线前不用改地址):比如在React项目的package.json里添加一行"proxy": "http://localhost:3001",这样前端请求/api/contactus时,会自动转发到后端的3001端口;Vue项目的话可以在vue.config.js里配置devServer.proxy。
    另外还要确认后端的路由是不是正确定义了,比如是不是写了app.post('/api/contactus', (req, res) => { ... }),路径拼写不能错哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:19:58