即使CONTENT_LENGTH正确,$ _POST也是空的

时间:2013-05-09 11:22:24

标签: php post nginx multipart

我有一个 HTTP POST 指向两个不同的地方。

第一个位置是由第三方解决方案处理的,所以我无法看到他们如何处理数据(他们必须这样做,因为价值已经过去,我看到了结果)。

我的位置中,我有一台NGINX服务器(在使用很多之前从未遇到过任何问题)。我使用 php来读取POST数据,我希望内容在$_POST变量中,因为POST是$_SERVER["CONTENT_TYPE"] => "multipart/form-data"

但是,即使类型和$_SERVER["CONTENT_LENGTH"]是正确的,我在$_POST$_REQUEST中也没有收到任何内容,而在检查file_get_contents('php://input')时,内部没有任何内容任

身体是一个非常小的 json肿块(<1k)。始终是一组对象。

要查看我使用echo json_encode( array( "GET" => $_GET, "POST" => $_POST, "REQUEST" => $_REQUEST, "SERVER" => $_SERVER ) )

的数组中的内容

我已经完成了现在要检查的想法。

条目$_SERVER["PHP_SELF"]可能由于路径分隔符而产生奇怪的混乱?

1 个答案:

答案 0 :(得分:1)

How to post JSON to PHP with curl引导我找到解决方案:

不要忘记将其作为application/json

发送

一旦我这样做,数据就会在身体中传出来。这对我有帮助,但我仍然很好奇为什么第三方接收器可以处理数据。