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

jQuery AJAX无法显示服务器返回结果问题排查

解决AJAX请求后无法获取返回数据的问题

嘿,看你的代码片段,前端的AJAX配置其实没毛病——你已经正确设置了contentType: "application/json",还用JSON.stringify处理了发送的数据。但后端的代码明显没写完,这大概率就是你拿不到result.html和result.number的核心原因。下面给你梳理几个必须排查的关键点:

1. 先给Express加上JSON请求体解析中间件

Express默认不会自动解析JSON格式的请求体,要是没加这个中间件,后端的req.body会是undefined,你后续查用户的逻辑根本跑不起来。赶紧在你的Express app配置里(一定要放在路由定义之前)加上这行:

app.use(express.json());

2. 后端必须正确构造并返回响应对象

你的后端代码只写到了User.findById(id).exec(function(err, user),完全没处理查询后的响应逻辑。你得在查询完成后,把需要的html和number字段塞进一个对象里,再用res.json()返回给前端:

router.post("/home", function(req, res){
  // 这里要注意:id得从请求体里拿,比如你前端传的是userId,就用req.body.userId
  const id = req.body.userId; 
  User.findById(id).exec(function(err, user) {
    // 先处理错误情况
    if (err) {
      return res.status(500).json({error: "查询用户失败啦"});
    }
    if (!user) {
      return res.status(404).json({error: "找不到这个用户哦"});
    }
    // 按照前端需要的结构构造响应数据,这里根据你的业务逻辑填内容
    const responseData = {
      html: `<div>用户名:${user.name}</div>`, // 示例HTML内容
      number: user.age // 示例数字字段,比如用户年龄
    };
    // 一定要用res.json()返回,它会自动设置正确的响应头,前端才能解析成对象
    res.json(responseData);
  });
});

划重点:别用res.send(),一定要用res.json(),不然前端可能拿到的是字符串而不是对象,自然取不到html和number属性。

3. 给前端加个错误回调排查问题

你现在只写了.done()成功回调,万一请求本身出错了(比如后端返回500、404),你根本不知道。赶紧加上.fail()看看:

$.ajax({ 
  url: "/home", 
  type: "POST", 
  contentType: "application/json", 
  data: JSON.stringify({userId: "这里填实际的用户ID"}) // 确保发送的数据包含后端需要的id字段
})
.done(function(result){ 
  console.log(result.html); 
  console.log(result.number); 
})
.fail(function(xhr, status, error) {
  console.error("请求出错了:", status, error);
  console.error("后端返回的内容:", xhr.responseText);
});

这样打开浏览器控制台(F12),就能看到到底是请求失败了,还是后端返回了错误信息。

4. 确认前端发送的数据是否正确

打开浏览器开发者工具的Network标签,找到这个POST请求,查看Request Payload,看看你发送的JSON数据里有没有正确的id字段——要是后端拿不到正确的id,查不到用户,自然返回不了你要的数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:23:33