我该如何将JavaScript数组作为JSON变量发送到我的AJAX请求中?
这需要你将JavaScript数组序列化成一个字符串,这可以通过使用JSON对象很容易地完成。
var myArray = [1, 2, 3];
var myJson = JSON.stringify(myArray); // "[1,2,3]"
....
xhr.send({
data:{
param: myJson
}
});
由于一些旧版本浏览器中不存在JSON对象,因此您应该包含Douglas Crockford的json2库。
如果您已经依赖于某个库,并且该库包括用于编码/序列化的方法,则可以使用该库。例如,ExtJs具有Ext.encode
方法。
var arr = [1, 2, 3];
$.ajax({
url: "get.php",
type: "POST",
data: {ids:arr},
dataType: "json",
async: false,
success: function(data){
alert(data);
}
});
echo json_encode($_POST['ids']);
使用{ids:arr}将数组转换为对象,直接传递对象并让jQuery格式化查询字符串。
如果您没有使用JavaScript库(jQuery、prototype.js等)来为您完成此操作,您可以随时使用{{link1:json.org的示例代码}}
只需对数组进行编码,并将其作为 AJAX 请求的一部分发送:
http://www.openjs.com/scripts/data/json_encode.php
现在有太多其他的编码器,甚至是 JQuery 和 Mootools 的插件 :D