我需要通过ajax发送一个数组,但由于某种原因它不会发送,我怀疑它是由于序列化。
那么我如何创建数组以使其与ajax兼容?
我需要这种格式的数组,一个键值对,其中值是另一个数组。
[order: Array[1], type: Array[1]]
我声明我的数组是这样的:
filters = [];
如果检查输入,我将它们添加到数组中。
var order = $('input[name="order[]"]:checked').map(function(){return this.value;}).get();
if(!$.isEmptyObject(order))this.filters['order'] = order;
....
根据这个想法,如果没有选择输入,则数组为空,因此不会被ajax发送。
如何维护数组的结构,但使其与ajax兼容?
答案 0 :(得分:1)
阵列不使用键值对。相反,使用一个对象。
var obj = {order: Array[1], type: Array[1]}
答案 1 :(得分:1)
我认为您需要将filters
声明为对象:
filters = {};
this.filters.order = order;
答案 2 :(得分:0)
如果您正在使用jQuery,请参阅我的回答here。我有一个类似的问题。当您传递一个或多个对象时,必须使用JSON.stringify()并设置内容类型。