在 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)
})