使用jQuery.ajax post函数将javascript数组中的数据传递给服务器?

时间:2011-12-25 21:46:41

标签: javascript jquery ajax arrays post

我想知道是否可以使用jQuery的ajax函数将存储在javascript数组中的数据传递给服务器..

在jQuery文档中,它指定:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

可以将“数据”设置为数组吗?鉴于数据似乎期待关键价值对,它将如何运作?我目前只是硬编码值,但我希望它是一个更动态的方法..我目前的代码是:

jQuery.ajax({
            url: "/createtrips/updateitin",
            type: 'POST',
            data: {place1: 'Sydney', place2: 'London'},
            dataType: 'json',
            });

4 个答案:

答案 0 :(得分:8)

我创建了一个这样的数组:

var placesfortrip = {};

然后像这样添加:

placesfortrip["item"+counter] = inputVal;

(其中counter是递增的计数器变量) 然后将其分配给ajax调用的data属性

 jQuery.ajax({
            url: "/createtrips/updateitin",
            type: 'POST',
            data: placesfortrip,
            dataType: 'json',
            });

如果我查看firebug中的XHR选项卡,则会显示这些值已发布!

答案 1 :(得分:2)

是的,jQuery.ajax()支持传递数组。它只是将数组序列化为名称 - 值字符串。

  

如果value是一个数组,jQuery会使用相同的键序列化多个值   基于traditional设置的值(如下所述)。

答案 2 :(得分:0)

我相信您希望使用JSON来传递这些值。

This is a good place to start

答案 3 :(得分:0)

查看jQuery序列化:http://api.jquery.com/serialize/

$('form').submit(function() {
  alert($(this).serialize());
  return false;
});
This produces a standard-looking query string:

a=1&b=2&c=3&d=4&e=5