将数组传递给$ .ajax()中的ajax请求

Poo*_*att 188 arrays ajax jquery json

可能重复:
在jQuery中序列化为JSON

我想发送一个数组作为Ajax请求:

info[0] = 'hi';
info[1] = 'hello';

$.ajax({
  type: "POST",
  url: "index.php",
  success: function(msg){
    $('.answer').html(msg);
  }
});
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Dio*_*ode 241

info = [];
info[0] = 'hi';
info[1] = 'hello';


$.ajax({
   type: "POST",
   data: {info:info},
   url: "index.php",
   success: function(msg){
     $('.answer').html(msg);
   }
});
Run Code Online (Sandbox Code Playgroud)

  • 是的......那很有用......谢谢......还有更多的事情可以做...那就是初始化**info = {};**然后**数据:信息,** (10认同)
  • 它发送0 = hi&1 = hello,行吗?取决于您的服务器端代码。info = {}是Javascript中的普通对象。info = []是一个数组对象。 (2认同)

Far*_*den 64

只需使用JSON.stringify方法并将其作为$ .ajax函数的"data"参数传递,如下所示:

$.ajax({
    type: "POST",
    url: "index.php",
    dataType: "json",
    data: JSON.stringify({ paramName: info }),
    success: function(msg){
        $('.answer').html(msg);
    }
});
Run Code Online (Sandbox Code Playgroud)

您只需要确保在页面中包含JSON2.js文件...


Bla*_*ine 7

注意:不适用于较新版本的jQuery.

由于您使用的是jQuery,请使用它的seralize函数来序列化数据,然后将其传递给ajax调用的data参数:

info[0] = 'hi';
info[1] = 'hello';

var data_to_send = $.serialize(info);

$.ajax({
    type: "POST",
    url: "index.php",
    data: data_to_send,
    success: function(msg){
        $('.answer').html(msg);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 怎么会有这么多的赞成?没有像`jQuery.serialize()`这样的jQuery函数.有`.serialize()`但它意味着要用在一组表单元素上.尝试这个代码,你只会得到`TypeError:$ .serialize不是一个函数` (22认同)