我注意到了一些奇怪的事情。我一直认为new Array()与 相同{},但它似乎不同,因为它似乎{}只是一个对象类型,而new Array()在 Chrome 调试器中是一个数组。
所以我一直在使用$.param(data),其中 data 是来自$.ajax()通话的数据。我注意到,当我在数据中有 aparams1 = new Array()和 a时params2 = {},它们的输出方式不同。
params1 变成
params1[]=1¶ms1[]=2
和 params2 变成
params2[0]=1¶ms2[1]=2.
问题是我一直在使用.param(data, false),因为我注意到它params1[]被错误地序列化,但是.param(data, false)失败params2并给了我params2=[object+Object].
我想我可以通过使用 .param(data) 并去掉“[]”来解决这个问题,这样无论使用{}or初始化new Array它,它仍然可以正常工作。但我想知道是否有更好的解决方案(不总是使用{}vs new Array)。