通过jquery中的$ .post发送对象键和值列表

时间:2016-01-11 11:01:35

标签: javascript jquery arr

我想使用jquery $ .post将所有数据(包含key,value的对象形式)发送到服务器。以下是代码。

/* DATA FOR HEADER --- I have created a list of key value pair in variable **arr** */
    var headerKey = Array();
        $.each( $(".headerParamsContainer .headerKey") , function(index, value){
            headerKey[headerKey.length] = $(value).val();
    });

    var headerValue = Array();
        $.each( $(".headerParamsContainer .headerValue") , function(index, value){
        headerValue[headerValue.length] = $(value).val();
    });

    var arr = []; 
    $.each( headerKey, function(index, value){
        var tempObj = {};
        tempObj[headerKey[index]] = headerValue[index];
        arr.push(tempObj);
    });

现在我正在尝试将此信息发送到服务器但不能正常工作..

     $("#createCall").submit(function(event) {
          event.preventDefault();
          var $form = $( this ),
                url = $form.attr( 'action' );
          var posting = $.post( url, { 
              code: $('#code').val(),  
              viewName: $('#viewName option:selected').val(), 
              getHeaderParams: $.parseJSON(arr) 
          });

          posting.done(function( data ) { });
        });

1 个答案:

答案 0 :(得分:2)

您滥用该数组,JavaScipt中没有键值数组,请参阅here

你应该使用这段代码:

var obj = {};

$.each( headerKey, function(index, value){
    obj[headerKey[index]] = headerValue[index];
});

然后您可以对其进行serzialize并将JSON发送到您的服务器。