Jquery没有通过ajax传递数组

时间:2018-01-04 09:47:00

标签: javascript jquery ajax

我试图通过ajax将javascript数组发送到php,但它不发送,这里是我的代码

var ArrayAmounts = new Array();
ArrayAmounts["P1"] = "16150";

$.ajax({
    url:"myajax",
    cache:'false',
    type:'POST',
    data:{Arr:ArrayAmounts},
    success: function(data){
        console.log(data);
    },error: function(xhr, AjaxOptions, ThrownError){
        ShowMessage(xhr.responseText);
    }
});

但是当我像这样制作数组时:

 var ArrayAmounts = new Array();
 ArrayAmounts[0] = "16150";

它正在传递数组,但我想将密钥作为字母数字。 请帮忙。

4 个答案:

答案 0 :(得分:4)

所以你不需要这里的数组,你需要使用这样的对象:

var Amounts = {};
Amounts["P1"] = "16150";

$.ajax({
    url:"myajax",
    cache:'false',
    type:'POST',
    data:{Arr: Amounts},
    success: function(data){
        console.log(data);
    },error: function(xhr, AjaxOptions, ThrownError){
        ShowMessage(xhr.responseText);
    }
});

答案 1 :(得分:0)

您的问题与您发送的数据类型有关,因为文档说明:

  

"如果不是字符串,则转换为查询字符串。它' S   附加到GET请求的URL。 对象必须是键/值   对。如果value是一个数组,jQuery将使用多个值序列化   基于传统设置值的相同密钥"

Official documentation for more details

答案 2 :(得分:0)

你可以像这样声明数组: var ArrayAmounts = new Array(); ArrayAmounts = [“16150”]; 然后你的ajax调用正常工作

答案 3 :(得分:0)

像这样使用

http://