【问题标题】:HTTP Post request json data changesHTTP Post 请求 json 数据变化
【发布时间】:2013-12-23 14:22:40
【问题描述】:

由于一些奇怪的原因,当我让我的客户端向我的服务器发送一个 HTTP Post 请求时,数据发生了变化。每次我控制台记录服务器中的数据时,我的数据不再有逗号。相反,它将每个逗号替换为 &。为什么我所有的逗号都变成了& 符号,我该如何解决这个问题?

客户:

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

【问题讨论】:

  • 事件处理程序接受chunk 参数,但您正在解析data
  • 对不起,我写错了。它正在解析块。此外,=chunkJSON.parse(chunk) 之间没有区别。两者都打印出相同的字符串

标签: javascript node.js


【解决方案1】:

不要对request 使用form 选项,而是使用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) );
  ...
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多