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

MongoDB无法正确保存AJAX请求传递的数据问题排查

问题排查与解决方案

核心问题是后端无法解析前端发送的请求体,导致req.body为空/undefined,最终触发了代码里的|| ' '默认值,存入空格。以下是具体修复步骤:

1. 后端必须配置请求体解析中间件

如果你的项目用Express框架,必须在路由挂载之前添加JSON解析中间件,否则Express无法自动解析JSON格式的请求体,req.body会是undefined。

在你的Express应用初始化代码中添加:

const express = require('express');
const app = express();

// 这行必须放在路由注册之前
app.use(express.json());

// 然后再挂载你的路由
app.use('/api', router); // 替换成你实际的路由前缀

2. 前端AJAX请求格式修正

你当前的AJAX配置有两个问题:

  • 没有设置Content-Type: application/json,后端不知道请求体是JSON格式
  • processData: false时,直接传对象会导致请求体变成[object Object],无法被解析

修改v2Request函数:

function v2Request(data) {
    return $.ajax({
        type: "post",
        headers: {
            "Accept": "application/json; odata=verbose",
            "Content-Type": "application/json" // 新增:告诉后端请求体是JSON
        },
        url: "URL/v2",
        data: JSON.stringify(data), // 把对象转为JSON字符串
        processData: false,
        dataType: "json"
    });
}

3. 验证修复效果

重启服务后,先看后端控制台的console.log(req.body)输出:

  • 如果能打印出包含firstName和secondName的正确对象,说明解析成功
  • 此时再存入MongoDB,就能得到正确的数据,不会再存入空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:45:34