发布列表的AJAX不起作用

时间:2015-03-25 06:43:04

标签: jquery ajax post

我正在尝试将一组名称发布到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}等等。没有任何效果。有人可以帮忙吗?

3 个答案:

答案 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);
               }
        });