如何阻止jQuery解析器将数组转换为对象?

时间:2017-08-16 19:16:37

标签: javascript jquery arrays ajax http-post

我有一个javascript数据文件,如下所示:

data = { 
  items : [ 
   {name: 'ABC'}, 
   {name: 'CDF'} 
  ] 
}

当我将此数据传递给$.ajax(type: 'POST', data: data)时,转换后的数据如下所示:

items[0][name]: 'ABC'
items[1][name]: 'CDF'

我的问题是我发送此数据的服务器将其解释为:

items: { 
  '0' : { 'name' : 'ABC' }, 
  '1' : { 'name' : 'CDF' }     
}

这里的问题是items被视为对象,而不是数组! 那么如何确保$.ajaxitems编码为数组而不是对象?谢谢,麻烦您了!

2 个答案:

答案 0 :(得分:0)

之后你可以做一点转换吗?



data = { 
  items : [ 
   {name: 'ABC'}, 
   {name: 'CDF'} 
  ] 
}

data.items=Object.keys(data.items).map(key=>data.items[key])




答案 1 :(得分:0)

我相信

$.ajax({
    type: 'POST',
    data: JSON.stringify(data),
    contentType: 'application/json'
})

应该做的伎俩

编辑添加我在评论中提到的错误遗漏的内容类型。