发送数组时jquery和ajax

时间:2012-12-02 21:45:49

标签: jquery ajax

我在jQuery中创建了一个函数,它将获得一些数据表单页面,然后需要使用ajax发送数据。 我已经测试了发送一些字符串作为数据,所有工作正常,但现在,当我需要发送数组由于某种原因它不起作用。 在控制台上我有:

["3"]
[]

我没有警觉。可能是数据类型有问题吗?

$("#save").click(function() {
   var sendArr= new Array();
   var arr = $(".sortable").map(function(){return this.innerHTML}).get();        
   for (var i = 0; i < arr.length; i++) {

       test =$(arr[i]).map(function() {  return $(this).attr("data-ex");    });
       console.log(test);
       sendArr[i]=test;
   }


        $.ajax({
      type: "POST",
      url: "http://localhost/someurl/",
      data:  {action:  sendArr}
    }).done(function( msg ) {
          alert( "Data Saved: " + msg );
    });

});

1 个答案:

答案 0 :(得分:0)

gogic - 制作一个更简单的例子来测试,然后从中构建。

$(function() {

var serialized = JSON.stringify({"msg" : "Hello!"});
$.ajax({
    url: myURL,
    type: 'POST',
    data: serialized,
    contentType: 'json',
    dataType: 'html'
}).done(function(obj) {
    $('div').html(obj.msg);
}).fail(function() {
    alert('Failed!');
});

});

dataType是您期望收到的; contentType是您要发送的内容。您的JSON必须使用JSON.stringify(obj)进行序列化。

此外,当您将数组作为JSON发送时,它应如下所示:

var array_json = {"myArray" : [1, "example", 2, "array"]}
var serialized = JSON.stringify(array_json)

使用console.log确保您创建的JSON有效。