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

jQuery AJAX请求参数未按预期传递到PHP后端问题求助

问题根因及修复方案

1. 核心错误1:$.ajax的data参数配置错误

jQuery的data参数不支持直接传入匿名函数自动执行返回结果,你当前的写法相当于把函数本身传递给了data,而非函数执行后返回的JSON字符串,导致后端收到的请求体为空或非法内容,json_decode解析失败返回null,才会触发数组下标访问的警告。
修复方式:直接给data赋值序列化后的JSON字符串即可,不需要包裹函数:

// 错误写法
// data: function (d) {
//     return JSON.stringify(getReport);
// },
// 正确写法
data: JSON.stringify(getReport),

2. 核心错误2:dataType参数配置错误

$.ajax的dataType参数用于指定你期望后端返回的数据格式,可选值仅为json、xml、html、text等jQuery预定义的类型,你填写的application/json是MIME类型,不属于jQuery支持的dataType取值,会导致jQuery无法正确解析后端返回的JSON数据。
修复方式:将dataType修改为json即可:

// 错误写法
// dataType: "application/json",
// 正确写法
dataType: "json",

额外验证建议

可以在PHP代码中加入JSON解析错误排查逻辑,方便定位问题:

$rawJson = file_get_contents("php://input");
$parms = json_decode($rawJson, true);
// 排查解析错误
if (json_last_error() !== JSON_ERROR_NONE) {
    echo json_encode(['error' => 'JSON解析失败: ' . json_last_error_msg()]);
    exit;
}
$jobId = $parms["jobID"];

修复完成后即可正常拿到传递的参数,你之前用fetch可以正常运行是因为fetch的配置逻辑和jQuery AJAX的参数规则不同,不存在上述两个配置错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:24:04