1

我在 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 );
    });

});
4

1 回答 1

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 有效。

于 2012-12-02T21:53:30.060 回答