如何在$ .ajax()中将数组数组作为数据发送?

时间:2014-12-09 12:04:18

标签: jquery arrays ajax

我知道这个问题曾经多次被问过,但没有人帮助过我。 我试图通过使用$ .ajax()的数据传递一个数组数组(可能有也可能没有数组)。从服务器收到的响应应该与发送的数据相同(根据php中的代码),但它发送空白对象。 请帮助我知道传递这样一个数组的正确语法。

val_pass是一个数组数组,#display_message是要追加的段落。这是我的代码:

 $.ajax({
        type: 'POST',
        url: 'http://someurl.com/',
        // data: JSON.stringify(val_pass),
        // data: JSON.stringify({paramName: val_pass}),
        // data: {'myArray': val_pass},
        // data: $.toJSON(val_pass),
        data: {val_pass: val_pass},
        // data: $.serialize(val_pass),
        success: function(response){
            console.log(response);
            $('#display_message').append('Data successfully passed');
        },
        error: function(xhr, status, errorThrown){
            console.log(xhr+status+errorThrown);
            alert("Sorry");
        },
    });

PS:注释行是我尝试传递数组的各种方式。我是ajax的新手,请忽略我的noobness。

2 个答案:

答案 0 :(得分:1)

如果你使用的是Json,那么输入应该是json。成功的函数参数即json是保存数据的变量。所以数据:json

 $.ajax({
 url: url_to_load,
 dataType: 'json',
 data: json,
 success: function(json){
 };
 });

更加用户友好的版本如下:

$.getJson("service.php",function(json){
//code goes here
});

答案 1 :(得分:0)

我得到了问题的解决方案。 首先,我将其作为一个对象数组发送,而不是传递数组数组。

现在我的val_pass是对象数组。代码:

var jObject={};
jObject = JSON.stringify(val_pass);

$.ajax({
    type: 'POST';
    data: {jObject: jObject};
    url: some_url;
});

http://pavanarya.wordpress.com/2012/09/09/calling-a-webservice-using-jquery-and-passing-jsonarray-object/

请参阅此链接以获取帮助。