我正在使用以下代码进行POST。但是,$ _POST的内容为null。我在这里缺少什么?
epsilon = 1
答案 0 :(得分:1)
$_POST
超全球仅用于Content-Type: application/x-www-form-urlencoded
;即格式为foo=1&bar=2
的键/值对。您正在发布JSON。在服务器端使用它而不是使用超全局:
$json = file_get_contents('php://input');
此外,我建议您发布的cURL客户端代码中进行以下更改:
替换
CURLOPT_CUSTOMREQUEST => "POST",
与
CURLOPT_POST => 1,
并添加
CURLOPT_RETURNTRANSFER => 1,
答案 1 :(得分:0)
POST数据不应编码为JSON,它应该是name=value&name=value&...
形式的URL编码字符串。此外,即使处理了JSON,您也没有为参数指定名称,那么您期望$_POST
中的密钥是什么?
如果您提供关联数组CURLOPT_POSTFIELDS
,它会自动为您编码。
'CURLOPT_POSTFIELDS' => array('orderData' => $orderData)
然后在服务器脚本中,您可以使用$_POST['orderData']