如何在jQuery中将对象转换为ajax主体?

如何在jQuery中将对象转换为ajax主体?,jquery,ajax,Jquery,Ajax,我有一个express服务器,它需要一个用户对象。我正在通过jqueryajax调用向服务器提交ajax请求。这是我的客户端代码: var user = { "first_name": "Jimi", "last_name": "Hendrix", "email": "jimi@gmail.com" }; $.ajax({ type: 'POST', url: 'http://localhost:9000/stuff', dataType: 'js

我有一个
express
服务器,它需要一个用户对象。我正在通过
jqueryajax
调用向服务器提交
ajax
请求。这是我的客户端代码:

var user = {
    "first_name": "Jimi",
    "last_name": "Hendrix",
    "email": "jimi@gmail.com"
};
$.ajax({
    type: 'POST',
    url: 'http://localhost:9000/stuff',
    dataType: 'json',
    data: {user: user}
});
身体永远无法到达
express
。这是我的
express
设置

var app = express();
app.use(bodyParser.json());

if (req.method === 'OPTIONS') {
    res.send(200);
  } else {
    next();
  }
}

app.post('/stuff', function(req, res) {
    'use strict';
    console.log(req.body);
    res.send(200);
});
我的
console.log(req.body)
总是返回相同的内容,
正文:{}


我需要为我的身体做些什么才能让它进入我的服务器?我需要序列化数据吗?我想我可以附加这个对象。

jQuery
中,
ajax
默认的
内容类型是
application/x-www-form-urlencoded
。对于
express
服务器,如果要解析出该类型的内容,则必须添加
bodyParser.urlencoded({extended:false})
。现在,当我
console.log
离开我的身体时,我得到的正是我所期望的

能否将
data:{user:user}
更改为
data:user
?您以何种方式看到
body
是空的?直接传递用户对象应该有效。检查浏览器的开发人员控制台以了解发送的内容。如果您看到数据,那么问题出在您的服务器上。顺便说一句,您的数据类型应该是“application/json”。@phong vo这有什么区别?这两种方法都受支持。我将
dataType
更改为
application/json
。然后,我用
data:user
附加对象。当我进入
express
服务器和
consolelog(req.body)
时,它仍然返回
{}