POST zu PHP von Node.js
Ich versuche, einige Daten aus einer Node.js-Anwendung in ein PHP-Skript zu POSTEN. Momentan erstelle ich nur einen Proof of Concept, kann aber die eigentlichen Daten nicht auf die PHP-Seite übertragen. Die Anfrage geht durch und ich bekomme 200 zurück, aber PHP denkt, dass das Array $ _POST leer ist.
Hier ist mein Knotencode:
// 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();
}
Wieder schafft es die Anfrage zu localhost: 8050 / machines / test / index.php, aber wenn ich einen var_dump von $ _POST mache, ist es ein leeres Array.
[29-Jan-2014 21:12:44] array(0) {
}
Ich vermute, ich mache etwas falsch mit der .write () -Methode, aber ich kann nicht genau herausfinden, was. Jede Eingabe zu dem, was mir fehlt oder was ich falsch mache, wäre sehr dankbar.
* Aktualisieren:
Wie in einigen Kommentaren angegeben, wird file_get_contents ('php: // input') verwendet. funktioniert, um die Daten auf der PHP-Seite abzurufen, aber ich würde es immer noch vorziehen, direkt auf das Array $ _POST zugreifen zu können.