php的$GLOBALS['_POST']获取不到http post请求json的参数

php 2023-08-29 764次浏览

$GLOBALS['_POST']无法直接获取HTTP POST请求的JSON参数,因为PHP不能自动将JSON数据解析到$_POST数组中。

有以下几种方法可以获取POST请求的JSON参数:

  1. 使用file_get_contents('php://input')读取JSON字符串,然后使用json_decode解析:
$json = json_decode(file_get_contents('php://input'), true);
  1. 设置请求内容类型为application/json,并使用$_SERVER['CONTENT_TYPE']检测:
if ($_SERVER['CONTENT_TYPE'] == 'application/json') {
    $json = json_decode(file_get_contents('php://input'), true);
}
  1. 使用curl等手工设置Content-Type头,然后解析请求体:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
// ...
$json = json_decode(curl_exec($ch), true);

php的$GLOBALS['_POST']获取不到http post请求json的参数

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址