Javascript 如何通过ajax发送js数组?

Javascript 如何通过ajax发送js数组?,javascript,ajax,arrays,Javascript,Ajax,Arrays,我只能发送字符串或数字值,如何发送数组?你可能会得到一系列答案,都是“” 以下是一些具体案例。”“数据”保存您发送的内容 var numArray = [17, 42, 23]; data = '[' + numArray + ']'; var strArray = ['foo', 'bar', 'baz']; data = '["' + numArray.join('", "') + '"]'; 对于一般情况,使用递归地将对象编码为JSON的函数。如果你真的想让我这么做,我会发布一个示例实

我只能发送字符串或数字值,如何发送数组?

你可能会得到一系列答案,都是“”

以下是一些具体案例。”“数据”保存您发送的内容

var numArray = [17, 42, 23];
data = '[' + numArray + ']';

var strArray = ['foo', 'bar', 'baz'];
data = '["' + numArray.join('", "') + '"]';

对于一般情况,使用递归地将对象编码为JSON的函数。如果你真的想让我这么做,我会发布一个示例实现,但这是一个有趣的项目,所以你可能想尝试一下。如果您使用的是Javascript库,它可能有一个自己的JSON编码器(比如jQuery)。

您可能会得到很多答案,都是“JSON”

以下是一些具体案例。”“数据”保存您发送的内容

var numArray = [17, 42, 23];
data = '[' + numArray + ']';

var strArray = ['foo', 'bar', 'baz'];
data = '["' + numArray.join('", "') + '"]';
对于一般情况,使用递归地将对象编码为JSON的函数。如果你真的想让我这么做,我会发布一个示例实现,但这是一个有趣的项目,所以你可能想尝试一下。如果您使用的是Javascript库,它可能有自己的JSON编码器(比如jQuery)

我只能发送字符串或数字值

实际上,您只能发送字符串。当你包含一个数字时,它就变成了一个字符串;如果服务器端脚本愿意的话,可以将其解析回一个数字

如何发送数组

本机HTML表单发送多个值的方式是使用多个输入。您可以通过多次包含相同的命名参数来复制该参数。要发送
[1,2,3]

http://www.example.com/ajax.script?a=1&a=2&a=3
可以在AJAX post请求中发送相同的多参数实例查询字符串

如果您使用更高级别的框架来创建表单编码字符串,这取决于框架如何接受多个参数实例。例如,使用jQuery,您可以发布一个对象,如
{a:[1,2,3]}

另一种方法是忘记标准的HTML表单编码,只需以您喜欢的任何特殊编码传递所有值,这样就可以保留数据类型和结构。通常是JavaScript值文本(JSON):

(也就是说,
[1,2,3]
,URL编码。)然后需要在服务器上使用JSON解析器在那里重新创建本机数组值

我只能发送字符串或数字值

实际上,您只能发送字符串。当你包含一个数字时,它就变成了一个字符串;如果服务器端脚本愿意的话,可以将其解析回一个数字

如何发送数组

本机HTML表单发送多个值的方式是使用多个输入。您可以通过多次包含相同的命名参数来复制该参数。要发送
[1,2,3]

http://www.example.com/ajax.script?a=1&a=2&a=3
可以在AJAX post请求中发送相同的多参数实例查询字符串

如果您使用更高级别的框架来创建表单编码字符串,这取决于框架如何接受多个参数实例。例如,使用jQuery,您可以发布一个对象,如
{a:[1,2,3]}

另一种方法是忘记标准的HTML表单编码,只需以您喜欢的任何特殊编码传递所有值,这样就可以保留数据类型和结构。通常是JavaScript值文本(JSON):


(也就是说,
[1,2,3]
,URL编码。)然后需要服务器上的JSON解析器在那里重新创建本机数组值。

javascript中没有内置JSON序列化程序,因此需要使用库。一个好的是

以下是一个示例:

// suppose you have an array of some objects:
var array = [{ prop1: 'value1', prop2: 10 }, { prop1: 'value2', prop2: 20 }];
// convert it to json string:
var jsonString = JSON.stringify(array);
// TODO: send the jsonString variable as a parameter in an ajax request
// On the server side you will need a JSON deserializer
// to convert values back to an array of objects

javascript中没有内置的JSON序列化程序,因此需要使用库。一个好的是

以下是一个示例:

// suppose you have an array of some objects:
var array = [{ prop1: 'value1', prop2: 10 }, { prop1: 'value2', prop2: 20 }];
// convert it to json string:
var jsonString = JSON.stringify(array);
// TODO: send the jsonString variable as a parameter in an ajax request
// On the server side you will need a JSON deserializer
// to convert values back to an array of objects

实际上,您可以以更干净的方式发送数组,而不是尝试编码JSON。 例如,这是有效的

$.post("yourapp.php", { 'data[]': ["iphone", "galaxy"] });

有关更多信息,请参阅。

实际上,您可以以更干净的方式发送数组,而无需尝试编码JSON。 例如,这是有效的

$.post("yourapp.php", { 'data[]': ["iphone", "galaxy"] });

有关更多信息,请参阅。

您可以更具体一点吗?还是演示一下?通过使用JSON,您基本上可以使用
JSON.stringify(myArray)
来创建一个包含JSON格式数组的字符串。更多信息和下载,当然,AJAX中的X表示XML(“异步JavaScript和XML”)。JSON变体可能应该是AJAJ。您可以更具体一点吗?还是演示一下?通过使用JSON,您基本上可以使用
JSON.stringify(myArray)
来创建一个包含JSON格式数组的字符串。更多信息和下载,当然,AJAX中的X表示XML(“异步JavaScript和XML”)。JSON变体可能应该是AJAJ,尽管javascript规范不包含它,但所有现代浏览器都包含它。尽管javascript规范不包含它,但所有现代浏览器都包含它。