我正在尝试将一组名称发布到Web服务。以下是我用JQuery AJAX编写的代码:
var poster=[1,2,3]
$.ajax({
type: "POST",
traditional:true,
url:"/post",
data: {'poster':poster},
dataType: 'JSON',
cache: false,
success: function(result){console.log(result);}
});
发生的事情是,只有'3'(数组中的最后一个元素)才能获得POSTED。我的console.log也返回Object{poster:"3"}
。我尝试了从添加传统关键字到使数据匿名的所有内容,如数据:{'':poster}等等。没有任何效果。有人可以帮忙吗?
答案 0 :(得分:1)
jQuery将它们变成三个POST
参数,如poster[]=1&poster[]=2&poster[]=3
。您应该在服务器端收到三个poster[]
参数。第一个持有1,第二个 - 第二个 - 第三个 - 第三个 - 我猜你只会在最后一个中获得,所以你只得到3.你需要的是获得所有这些。
答案 1 :(得分:1)
尝试使用JSON.stringify()
var dataToBePosted = { poster: [1, 2, 3] };
$.ajax({
type: "POST",
url:"/post",
data: JSON.stringify(dataToBePosted),
dataType: 'JSON',
cache: false,
success: function(result){console.log(result);}
});
答案 2 :(得分:1)
试试这个
var poster=[1,2,3];
$.ajax({
type: "POST",
traditional:true,
url:"/post",
data: {'poster':JSON.stringify(poster)},
dataType: 'JSON',
cache: false,
success: function(data){
console.log(data);
}
});
或
var poster=[1,2,3];
$.ajax({
type: "POST",
traditional:true,
url:"/post",
data: 'poster='+JSON.stringify(poster),
dataType: 'JSON',
cache: false,
success: function(data){
console.log(data);
}
});