我正在使用JQuery向服务器发出JSON请求,似乎它的参数序列化是硬编码到PHP所期望的,而不是通用的。基本上我有一个对象,看起来像这样:没有括号混乱的JQuery参数序列化
{
foo: 1,
bar : [1, 3, 5]
}
它它序列化为:
foo=1&bar[]=1&bar[]=3&bar[]=5
反正让它只是做?
foo=1&bar=1&bar=3&bar=5
这在我看来,jQuery的不应该如此依赖于什么服务器端框架的少数期望的命名约定。如果我想让我的参数名为bar[]
,我可以很容易地将它命名为我自己,如果这是我的服务器端代码所期望的。
好吧,如果你的服务器端语言/框架不会从查询字符串,它是你的问题支持单元素数组吧:) 让我回到我原来的观点如果您的服务器端框架需要括号,那么您应该更改您的参数名称以匹配,而不是使其成为服务器不可知的前端库的默认值。 – mpeters 2010-03-31 02:28:08
如果你所倡导的方法在某种程度上是“正确”的,那么我想你的论点会更引人注目。显然没有RFC或标准涵盖了应该如何处理数组语法,而且看起来像更新的技术正在选择更灵活的选项。你说JQuery不应该与“命名约定”绑定,但它明确支持这两种方法,并且你可以很容易地认为非括号语法就是绑定的语法。 – zombat 2010-03-31 03:36:47
有jQuery API指出:jQuery使用相同的键序列化多个值,即{foo:[“bar1”,“bar2”]}变为'&foo = bar1&foo = bar2'。请注意,在提供的示例中,没有出现括号... – 2010-04-14 21:56:20