AJAX POST提交number数组数据的请求可php的到的是string数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX POST提交number数组数据的请求可php的到的是string数组相关的知识,希望对你有一定的参考价值。

请求方式是POST
服务端是php
想尝试用AJAX提交数组信息
写了一个测试数据
var b = "a[]=1&a[]=2&a[]=3&";
可是PHP端获得的数组却是string数组而不是number数组, 求解!!!
function Connect(destUrl, sendData, CallbackFunc)

var xmlhttp = null;
if(window.XMLHttpRequest)

xmlhttp = new XMLHttpRequest();

else

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange = function()
if(xmlhttp.readyState == 4)

var data = JSON.parse(xmlhttp.responseText);
CallbackFunc(xmlhttp.status, data);

;
var param = sendData;
xmlhttp.open("POST",destUrl,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(param);


Connect("test.php", b, function(status, data)

alert(JSON.stringify(data));
);

test.php很简单
<?php
echo json_encode($_POST);
?>

参考技术A json格式下,如果数组有同名,就会自动合并 参考技术B <?php
echo json_encode($_POST);
?>
json_encode方法就是把变量转换为json格式的字符串啊。你的问题是什么追问

这个只是返回格式,但是我最后返回得到的数组是"a":["1","2","3"] 变成了字符串数组而不是number数组

参考技术C POST/GET提交的数据永远是字符串类型的,我还真没见过直接得到其他类型的POST/GET。
要是你知道了请务必告诉我下!

以上是关于AJAX POST提交number数组数据的请求可php的到的是string数组的主要内容,如果未能解决你的问题,请参考以下文章

AJAX get() 和 post() 方法

jQuery – AJAX get() 和 post() 方法

4.27 jQuery AJAX get() 和 post() 方法

您可以将 PHP $_POST 变量设置为数组吗?

jquery的$post方法不发送空数组的解决办法

为啥 POST 不支持字符集,但 AJAX 请求可以?雄猫 6