在 node/express 服务器收到的 JSON 的格式
Format of JSON received at node/express server
我正在从客户端向服务器发送数据。
// client
var messageObj = {};
messageObj.fromUserId = 1;
messageObj.messageContent = "print this";
$.ajax({
url: "/sendMessage",
type: "POST",
data: JSON.stringify(messageObj)
})
// server
app.post('/sendMessage', function (req, res, next) {
console.log(req.body);
return res.status(200);
});
为什么是console.log
输出,这个:
{ '{"fromUserId":1,"messageContent":"print this"}': '' }
不是这个? (我怎样才能做到这一点?)
{"fromUserId":1,"messageContent":"print this"}
默认设置是发送 URI 编码的数据并告诉服务器它是如何发送的,除非您指定其他内容。如果你要发送 JSON,你需要通过指定 contentType
:
来告诉浏览器(和 jQuery)和服务器
$.ajax({
url: "/sendMessage",
type: "POST",
contentType: "application/json",
data: JSON.stringify(messageObj)
})
我正在从客户端向服务器发送数据。
// client
var messageObj = {};
messageObj.fromUserId = 1;
messageObj.messageContent = "print this";
$.ajax({
url: "/sendMessage",
type: "POST",
data: JSON.stringify(messageObj)
})
// server
app.post('/sendMessage', function (req, res, next) {
console.log(req.body);
return res.status(200);
});
为什么是console.log
输出,这个:
{ '{"fromUserId":1,"messageContent":"print this"}': '' }
不是这个? (我怎样才能做到这一点?)
{"fromUserId":1,"messageContent":"print this"}
默认设置是发送 URI 编码的数据并告诉服务器它是如何发送的,除非您指定其他内容。如果你要发送 JSON,你需要通过指定 contentType
:
$.ajax({
url: "/sendMessage",
type: "POST",
contentType: "application/json",
data: JSON.stringify(messageObj)
})