我在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 );
});
});
答案 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有效。