这有点啰嗦,但也是一个非常严肃的问题。jQuery 改变了 ajax 参数序列化如下:
jQuery 1.4 在 jQuery.param 中添加了对嵌套参数序列化的支持,使用 PHP 普及的方法,Ruby on Rails 支持。例如,{foo: ["bar", "baz"]} 将被序列化为“foo[]=bar&foo[]=baz”。
你抓到了吗?
你打电话给你的参数foo
。如果 foo 的值是一个数组,jQuery 现在会将其重命名为foo[]
你的背后。这样做的原因是因为一些 PHP 开发者和 Ruby 开发者希望 3rd 方 API 为他们重命名。
称我为老式的,但是当我用 key 将某些东西放入地图时x
,我希望在x
. 或者至少具有可选覆盖的默认行为。
甚至文档也同意我的观点:
如果 value 是一个数组,jQuery 使用相同的键序列化多个值,即 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。
我是否认为这只是来自 jQuery 团队的错误判断?