出于某种奇怪的原因,当我的客户端向我的服务器发送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);
}
答案 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) );
...
});