如何获取AJAX发送到PHP文件的数据?(jQuery拖拽场景)
问题解决:AJAX传值到PHP无法获取的处理方法
你的问题出在AJAX请求的contentType设置和数据格式不匹配,导致PHP无法正常解析请求数据,下面给两种可行的解决办法:
方案一:使用默认表单编码格式(推荐)
直接删掉AJAX配置里的contentType属性,让jQuery自动处理数据编码,此时数据会以application/x-www-form-urlencoded格式发送,PHP就能用$_POST正常读取:
修改后的JS代码:
$.ajax({ type: "POST", url: "ajax-update-value.php", data: {playerid:playerid, value:value}, success: function(result) { alert(result); } });
PHP代码保持不变:
$playerid = $_POST['playerid']; $value = $_POST['value'];
方案二:使用JSON格式传递数据
如果一定要用JSON格式传输,需要同时调整JS和PHP代码:
- JS端把数据转成JSON字符串发送
- PHP端读取原始请求体并解析JSON
修改后的JS代码:
$.ajax({ type: "POST", contentType: 'application/json; charset=utf-8', url: "ajax-update-value.php", data: JSON.stringify({playerid:playerid, value:value}), success: function(result) { alert(result); } });
修改后的PHP代码:
$rawData = file_get_contents('php://input'); $data = json_decode($rawData, true); $playerid = $data['playerid']; $value = $data['value'];
调试小技巧
如果还是有问题,可以在PHP里加入调试代码,查看实际接收的数据:
// 查看POST数组 var_dump($_POST); // 查看原始请求体 var_dump(file_get_contents('php://input'));
内容的提问来源于stack exchange,提问作者user3304303
相关产品推荐
相关产品推荐

