传递键值数组AJAX



我有一个键值对数组,我需要通过ajax发送给另一个函数。我的数组看起来像这样

       var vitals=new Array();
       var vitals["height"]=170; 
       var vitals["weight"]=55; 

ajax函数是

     $.ajax({
    type: "POST", //GET or POST or PUT or DELETE verb
    url: url, // Location of the service
    data: JSON.stringify({ccdEntity: vitals }), //Data sent to server
    contentType: "application/json; charset=utf-8", // content type sent to server
    dataType: "json", //Expected data format from server
    processdata: true, //True or False
    success: function (msg) {//On Successfull service call
        ServiceSucceeded(msg);
    }

,接收该值的函数为

  public bool GenerateCcd( Array ccdEntity)

当我运行程序时,函数不显示带有键值的数组,但是当我传输一个普通数组(即vitals[0]=170)时,它工作得很好。我是否需要作出更改,以发送上述数据的功能?

编辑:尝试将上述数组作为JSON对象传递

             var vitals= {
        "height": "170",
        "weight": "55"}

,但结果仍然相同

使用如下代码::

function TestAjax() {
    var vitals= [];
    for (var i = 0; i < 5; i++) {
        vitals.push({ Height: (170+i), Weight: (55+i) });
    }
    $.ajax({
        type: 'POST',
        url: url,
        contentType: "application/json",
        data:JSON.stringify( {vitals: vitals}),
        success: function (data) {
            alert("Succeded");
        }
    });
}

让你的vitals成为一个对象数组而不是数组;;

   var vitals={'height': '170', 'weight': '55'};

和张贴你的数据,如:

data: JSON.stringify(vitals)

最新更新