如何在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)
时,它仍然返回{}
。