我正在使用JQuery向服务器发回一个JSON请求,看起来它的参数序列化是硬编码的,而不是泛型的。基本上,我有一个对象,看起来像这样:
{
foo: 1,
bar : [1, 3, 5]
}
并将其序列化为:
foo=1&bar[]=1&bar[]=3&bar[]=5
有没有什么办法可以让它就这样呢?
foo=1&bar=1&bar=3&bar=5
在我看来,jQuery不应该如此依赖于少数服务器端框架所期望的命名约定。如果我希望我的参数被命名为bar[]
,我可以很容易地自己命名它,如果它是我的服务器端代码所期望的。
发布于 2010-03-30 04:06:53
我假设您使用的是JQuery 1.4。你应该看看这个:http://benalman.com/news/2009/12/jquery-14-param-demystified/
作者讨论了为什么他们让JQuery这样做,并提出了一些优秀的观点。例如,如果不使用“方括号语法”,就不能传入只有一个值的数组。
他还提供了一个变通方法:
$.ajaxSetup({ traditional: true });
这将告诉JQuery使用序列化的非括号方法。
https://stackoverflow.com/questions/2540827
复制相似问题