Node.js 응용 프로그램의 일부 데이터를 PHP 스크립트로 POST하려고합니다. 당분간 나는 개념 증명을 구축하고 있지만 실제 데이터를 PHP 측에 넘길 수는 없습니다. 요청이 끝나고 200을 다시 얻지 만 PHP는 $ _POST 배열이 비어 있다고 생각합니다.Node.js에서 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();
}
가 다시 요청이 로컬 호스트로 만드는 : 8050/기계/테스트/index.php를하지만 $ _POST의 위해서 var_dump를 할 때 빈 배열
여기 내 노드 코드입니다.
[29-Jan-2014 21:12:44] array(0) {
}
.write() 메서드로 뭔가 잘못하고있는 것으로 추측됩니다. 그러나 나는 무엇을 알아낼 수 없습니다. 내가 누락하거나 잘못하고있는 것에 대한 모든 의견은 크게 감사 할 것입니다.
* 업데이트 : 의견의 일부로서
사용하여 나타냅니다 file_get_contents ('PHP : // 입력'); PHP 측에서 데이터를 얻으려고 노력하지만 여전히 $ _POST 배열에 직접 액세스하는 것을 선호합니다.
가능한 중복 PHP에서 JSON POST에서 HTTP 요청 본문 읽기] (http://stackoverflow.com/questions/7047870/issue-reading-http-request-body-from-a-json-post-in-php) – Quentin
@Quentin Nope , 기필코 아니다. JSON을 PHP로 전달하려고 시도했지만 여전히 $ _POST 배열이 비어 있습니다. –
"JSON 이외의"인코딩 된 application/x-www-form-urlencoded 데이터입니까? '$ _POST'를 채우지 않아야하는 코드 만 보았습니다. – Quentin