使用 jQuery.ajax 发布函数将 javascript 数组中的数据传递到服务器?

Posted

技术标签:

【中文标题】使用 jQuery.ajax 发布函数将 javascript 数组中的数据传递到服务器?【英文标题】:passing data in javascript array to server with jQuery.ajax post function? 【发布时间】:2012-01-27 17:45:23 【问题描述】:

我想知道是否可以使用 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',
            );

【问题讨论】:

【参考方案1】:

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

var placesfortrip = ;

然后像这样添加到它:

placesfortrip["item"+counter] = inputVal;

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

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

如果我查看 firebug 中的 XHR 选项卡,就会发现这些值已被发布!

【讨论】:

【参考方案2】:

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

如果 value 是一个 Array,jQuery 序列化多个具有相同 key 的值 基于traditional 设置的值(如下所述)。

【讨论】:

【参考方案3】:

我相信您想研究使用 JSON 来传递这些值。

This is a good place to start

【讨论】:

我创建了一个这样的数组:【参考方案4】:

查看 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

【讨论】:

你有例子吗?好像不支持序列化(?)

以上是关于使用 jQuery.ajax 发布函数将 javascript 数组中的数据传递到服务器?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery ajax 函数将 php 值发送到 php 函数

使用 Jquery $.ajax 在 Flask 上调用服务器端函数 [重复]

将 PHP 变量传递回 jQuery $.ajax 函数

jQuery Ajax Post - 无法使用回调函数设置全局变量?

将 RegisterationId 发送到我们的服务器的 jQuery ajax 函数有啥问题?

POST 请求无法使用 JQuery AJAX