在php服务器上,我从$ _POST捕获所有发布的变量,例如
var_dump($_POST);
如果我使用html-form发布到服务器,这可以正常工作。
我尝试使用nodejs发布到服务器并请求:
requestify.post('http://localhost/rest/1/comment/create', {hello: 'world'})
.then(function(response) {
console.log(response.getBody());
})
这不会被php-server捕获,var_dump($ _ POST)输出一个空数组。
答案 0 :(得分:0)
当您提交HTML表单时,数据将使用application/x-www-form-urlencoded
格式进行编码(除非您告诉它使用text/plain
或multipart/form-data
)。
PHP会自动将application/x-www-form-urlencoded
和multipart/form-data
解析为$_POST
。
Restify会将数据编码为application/json
,PHP默认不会解析。 This question详细说明了如何阅读JSON格式的POST请求。
答案 1 :(得分:0)
您可以使用json_decode(file_get_contents("php://input"), true);
代码段从PHP读取json请求。 php://input
是PHP的STDIN,原始请求可用。详细信息也可在docs中找到。