重定向到新页面并设置POST数据

时间:2014-01-11 15:47:46

标签: javascript node.js redirect

我正在尝试重定向到新网站并设置要发送到该网站的发布数据。我试过这个:

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(302, {"Location": "http://example.com/newpage/", "Content-Type": "application/x-www-form-urlencoded"});
    res.end("param1=value1&param2=value2");
}).listen(process.env.PORT, process.env.IP);

这是不成功的。如何重定向到新网站并设置POST数据?

1 个答案:

答案 0 :(得分:0)

简单重定向无法与发布数据一起发送。 您必须发出新请求并传递给原始请求

http.createServer(function (req, res) {
  var http = require('http');

  var post_data = JSON.stringify({aaa: 'abc', bbb: 123});

  var options = {
    host: 'example.com',
    port: '80',
    path: '/',
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Content-Length': post_data.length
  };


  var req = http.request(options, function(resp_new) {
    resp_new.setEncoding('utf8');

    resp_new.on('data', function(chunk){
      res.send(chunk);
    });

    resp_new.on('end', function(){
      res.end();
    });
  }); 

  req.write(post_data);
  req.end();
});