【问题标题】:Format of JSON received at node/express server在节点/快递服务器收到的 JSON 格式
【发布时间】:2015-01-04 17:19:53
【问题描述】:

我正在从客户端向服务器发送数据。

// 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"}

【问题讨论】:

  • 好的,如果只是发送data: messageObj,我会得到想要的输出。但是发送 JSON 而不是原生 javascript 对象不是更好吗?
  • 是吗?此外,您没有发送native javascript objects,它们被序列化为键=值对。如果要发送 json,请尝试设置内容类型标头。 contentType: 'application/json',

标签: ajax json node.js express


【解决方案1】:

除非您指定其他内容,否则默认设置是发送 URI 编码的数据并告诉服务器它是如何发送的。如果要发送 JSON,则需要通过指定 contentType 来告诉浏览器(和 jQuery)和服务器:

$.ajax({
    url: "/sendMessage",
    type: "POST",
    contentType: "application/json",
    data: JSON.stringify(messageObj)
})

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2022-01-22
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多