【问题标题】:nodejs puts post data into new jsonnodejs 将 post 数据放入新的 json
【发布时间】:2014-03-01 14:16:28
【问题描述】:

当我通过此代码发送帖子请求时:

var data = '{data: 1111}'; // = JSON.stringify(message);

console.log('NotifySplitter: ' + data);

var options = cfg.splitterOptions;
options.headers['Content-Length'] = Buffer.byteLength(data)
var req = http.request(options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log("body: " + chunk);
    });
});

req.write(data);
req.end();

...并通过此代码获取数据:

var express         = require('express');
var app = express();

app.use(express.bodyParser());
app.post('/', function(request, response){

    var query = request.body;
    console.log(request.body);
    response.end();

});

request.body 包含:

{'{数据:1111}':''}

而不是预期的{数据:1111}。正常吗?发布前如何在不替换原始数据中的外部{}的情况下获取正常数据?

【问题讨论】:

    标签: json node.js http post request


    【解决方案1】:

    您必须设置适当的内容类型。如果您要发送 json,请将 options.headers['Content-Type'] = 'application/json' 添加到您的请求中。

    另外,{data: 1111} 不是 JSON,它是 JSON5。虽然它在所有方面都更好,但默认情况下不支持 express.bodyParser(),因此请注意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-13
      • 2021-11-11
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多