AJAX POST提交数据时years参数为空NULL问题排查求助
问题排查结果
核心错误原因
你在JavaScript代码中错误将years声明为数组[],但实际是按对象的使用方式给它赋值字符串类型的键:
- JavaScript的数组仅支持数字索引的成员序列化,你给数组附加的
pkStudyYears、fkStudyID、intStartYr这类字符串键属性,会被jQuery的AJAX参数序列化逻辑直接忽略 - 最终提交到后端的
years参数为空,因此PHP端判定$yearArray为空,返回对应错误
修复方案
只需要修改JS代码中years的初始化代码即可:
将原来的
data['years'] = [];
修改为
data['years'] = {};
验证方法
修改后可以打开浏览器开发者工具的「网络」面板,找到对应AJAX请求的POST参数,确认years下的所有字段已经被正常提交即可。
内容的提问来源于stack exchange,提问作者xanabobana
相关产品推荐
相关产品推荐

