从表单发布和从服务器发布有什么区别?

时间:2016-02-02 12:25:25

标签: php node.js http

在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)输出一个空数组。

2 个答案:

答案 0 :(得分:0)

当您提交HTML表单时,数据将使用application/x-www-form-urlencoded格式进行编码(除非您告诉它使用text/plainmultipart/form-data)。

PHP会自动将application/x-www-form-urlencodedmultipart/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中找到。