HTTP Post请求json数据更改

时间:2013-12-06 09:32:22

标签: javascript node.js

出于某种奇怪的原因,当我的客户端向我的服务器发送HTTP Post请求时,数据会发生变化。每次我在server.log服务器中记录数据时,我的数据都不再有逗号。相反,它用&替换每个逗号。为什么我的所有逗号都更改为&符号,如何解决此问题?

客户端:

var request = require('request');
request.post('http://11.11.11.111:9000/server.js', {form:{ "id" : "42", "helpme" : "no"}})  

服务器:

req.on('data', function(chunk) {
     //file1=chunk;
     file1=JSON.parse(chunk);
     console.log(file1);
}

1 个答案:

答案 0 :(得分:2)

不使用form request选项,而是使用json选项:

request.post('http://11.11.11.111:9000/server.js', {
  json : { "id" : "42", "helpme" : "no"}
})

另外,请注意,可以生成多个data事件,每个事件都包含不完整的数据。您需要存储传入的数据并在最后解析它:

var chunks = [];
req.on('data', function(chunk) {
  chunks.push(chunk);
});
req.on('end', function() {
  var data = JSON.parse( Buffer.concat(chunks) );
  ...
});