如何在我的AJAX请求中将JavaScript数组作为JSON变量发送?
答案 0 :(得分:19)
这要求您将javascript数组序列化为字符串,这可以使用JSON对象轻松完成。
var myArray = [1, 2, 3];
var myJson = JSON.stringify(myArray); // "[1,2,3]"
....
xhr.send({
data:{
param: myJson
}
});
由于旧版浏览器中不存在JSON对象,因此应包含Douglas Crockfords json2库
如果您已经依赖某些包含编码/序列化方法的库,那么您可以使用它。例如。 ExtJs有Ext.encode
答案 1 :(得分:1)
如果你没有使用javascript库(jQuery,prototype.js等),你可以使用example code from json.org
答案 2 :(得分:1)
只需对数组进行编码并将其作为AJAX recuest的一部分发送:
http://www.openjs.com/scripts/data/json_encode.php
有太多其他编码器,甚至是JQuery和Mootools的插件:D
答案 3 :(得分:1)
以下是一个例子:
var arr = [1, 2, 3];
$.ajax({
url: "get.php",
type: "POST",
data: {ids:arr},
dataType: "json",
async: false,
success: function(data){
alert(data);
}
});
在get.php中:
echo json_encode($_POST['ids']);
使用{ids:arr}将数组转换为对象,传递对象本身并让jQuery执行查询字符串格式化。