我正在尝试将一些数据从Node.js应用程序发布到PHP脚本。目前,我只是在构建概念证明,但无法将实际数据传递到PHP端。请求通过,我得到200,但PHP认为$
_POST数组为空。
这是我的节点代码:
// simple end point just for testing
exports.testPost = function(request, response) {
data = request.body.data;
postToPHP(data);
response.end(data);
}
function postToPHP (data) {
var http = require('http');
var options = {
host : 'localhost',
port : 8050,
path : '/machines/test/index.php',
method : 'POST',
headers : {
'Content-Type' : 'application/json',
'Content-Length' : Buffer.byteLength(data)
}
};
var buffer = "";
var reqPost = http.request(options, function(res) {
console.log("statusCode: ", res.statusCode);
res.on('data', function(d) {
console.info('POST Result:\n');
//process.stdout.write(d);
buffer = buffer+data;
console.info('\n\nPOST completed');
});
res.on('end', function() {
console.log(buffer);
});
});
console.log("before write: "+data);
reqPost.write(data);
reqPost.end();
}
同样,该请求将其发送到localhost:8050 / machines / test / index.php,但是当我执行$
_POST的var_dump时,它是一个空数组。
[29-Jan-2014 21:12:44] array(0) {
}
我怀疑我在.write()方法上做错了什么,但我不太清楚该怎么办。对于我所缺少或做错的任何事情,我们将不胜感激。
* 更新:
正如一些评论指出的那样,使用file_get_contents(’php:// input’); 确实可以在PHP端获取数据,但是我仍然希望能够直接访问$
_POST数组。