2016-02-02 35 views
0

在一个PHP的服务器我捕捉到所有张贴变量从$ _POST,forexample从表单发布和从服务器发布有什么区别?

var_dump($_POST); 

如果我使用一个HTML的形式张贴到服务器能正常工作。

我尝试发布使用和的NodeJS的requestify服务器:

requestify.post('http://localhost/rest/1/comment/create', {hello: 'world'}) 
.then(function(response) { 
    console.log(response.getBody()); 
}) 

这不会被PHP服务器和后续代码var_dump($ _ POST)输出空数组被捕获。

回答

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请求。

+0

不错!这将是一个更好的练习:将数据从节点发布到x-www-form-urlencoded中,或者在php中处理它? – Himmators

+0

@Himmators - 这是非常重要的问题。 – Quentin

0

你可以使用json_decode(file_get_contents("php://input"), true);片段来阅读来自PHP的json请求。 php://input是PHP的STDIN,原始请求可用。详情也可在docs

相关问题