无法使用node.js中的http.request发送参数

时间:2013-03-06 08:46:36

标签: node.js httprequest http-status-code-400

我使用的脚本是:

var http = require('http');
var options = {
  host: 'some url',
  port: 80,
  path: 'path',
  method: 'POST'
};

var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

// write data to request body
req.write('username=abcd&password=defg');
req.end();

我收到服务器的404错误请求的响应..但是当我使用firefox附加“海报”将相同的参数发布到服务器时......我得到了正确的回复,即200状态代码。我认为这是我在req.write()传递的字符串的问题。但同样的字符串与海报一起工作正常..有人可以解释问题是什么吗?

1 个答案:

答案 0 :(得分:2)

我认为缺少Content-Type标头。它可能应该设置为application/x-www-form-urlencoded