无法在PhantomJS中接收POST请求数据

时间:2018-07-07 08:00:03

标签: node.js phantomjs

我正在使用请求模块从Nodejs服务器发送数据到Phantom。这是请求

Request.post({
  "headers": { "content-type": "application/json" },
   "url": "http://localhost:8089",
   "body": JSON.stringify(data),
}, (error, response, body) => {
if(error) {
    return console.dir(error);
}

我想检索发布数据,并且在Phantom JS中获取request.post = undefined。这是示例代码:

server.listen(port, function (request, response) {
if (request.method == 'POST') {
   console.log(request.post); //Returning Undefined
}});

1 个答案:

答案 0 :(得分:0)

我已经通过const arr = [7, 1, 21, 70].reduce((acc, el, i) => [...acc, (acc[i-1] || 0) + el], []); console.log(arr); v2.87.0和request v2.1.1进行了测试:

Node.js

PhantomJS

PhantomJS

var request = require("request");

var data = { "some" : "value" };

request.post({

        headers: {'Content-Type': 'application/json'},
        uri: 'http://127.0.0.1:9999',
        body: JSON.stringify(data)

    }, function(){ process.exit() });

这将产生以下结果:

  

“ {\” some \“:\” value \“}”

即使未发送任何正文,也会记录空字符串。因此,我们可以得出结论,var page = require('webpage').create(); var server = require('webserver').create(); server.listen("127.0.0.1:9999", function (request, response) { console.log(JSON.stringify(request.post)); response.statusCode = 200; response.write("OK"); response.close(); }); 都不是request.post。请确保您使用的是最新版本的undefinedrequest