You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PHP接收JavaScript传递的数据返回Null?

问题原因与解决方案

问题出在你发送的是JSON格式的POST请求,但PHP默认的$_POST超全局变量只处理application/x-www-form-urlencoded或multipart/form-data编码的表单数据,不会自动解析JSON格式的请求体,所以$_POST['test']才会返回null。另外你的PHP代码里$myObj未初始化,也会触发潜在警告。

修改后的PHP代码

<?php
// 先初始化一个空对象
$myObj = new stdClass();
$myObj->name = "John";
$myObj->age = 30;

// 读取请求的原始JSON内容
$rawRequestData = file_get_contents('php://input');
// 解析JSON为PHP对象
$requestData = json_decode($rawRequestData);

// 安全获取传递的test值,避免解析失败时报错
if ($requestData && property_exists($requestData, 'test')) {
    $myObj->test = $requestData->test;
} else {
    $myObj->test = '无有效数据'; // 可选默认值
}

$myJSON = json_encode($myObj);
echo $myJSON;
?>

额外说明

  • 若想将解析结果转为数组,可给json_decode()添加第二个参数true:$requestData = json_decode($rawRequestData, true);,之后用$requestData['test']获取值
  • 可以添加JSON解析错误检查:if (json_last_error() !== JSON_ERROR_NONE),用来排查请求体是否为合法JSON格式

内容的提问来源于stack exchange,提问作者Nikos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:50:34