为什么我的对象键未定义且值不是

时间:2016-09-07 02:10:13

标签: jquery ajax

我正在构建这个简单的对象数组

var myData = $('.form-group input:not(.add), .form-group select').map(function() {
    return {
        'id': this.id,
        'value': this.value
    };
}).get();

如果我在console.log中输出,我可以看到键和值

但是当我尝试在$ .ajax调用中使用myData时,会丢弃密钥吗?

e.g。

$.ajax({
    url: site + form,
    type: 'POST',
    async: false,
    data: myData,
    success: function(response) {
        //do stuff
    }
});

这是POST标题:

console log

1 个答案:

答案 0 :(得分:1)

发布数据时,您的数据应如下所示:

{
    key1: val1,
    key2: val2
}

在您的情况下,您的数据如下:

[
    {
        id: key1,
        value: val1
     },
     {
        id: key1,
        value: val1
     }
]

以下是有关如何构建myData变量的修复方法:



var myData = {}
$('select').each(function() {
    myData[this.id] = this.value;
})

console.log(myData)
$.ajax({
    url: '',
    type: 'POST',
    async: false,
    data: myData,
    success: function(response) {
        //do stuff
    }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="a"><option>1</option></select>

<select id="b"><option>2</option></select>
&#13;
&#13;
&#13;