JQuery中“param序列化的传统风格”是什么?

你知道什么是“传统风格的参数序列化”为jQuery.ajax()中提到的http://api.jquery.com/jQuery.ajax/ ?

你能介绍一下吗?

谢谢

看看jQuery.param()的文档:

从jQuery 1.4开始, $.param()方法recursion地序列化深层对象,以适应现代脚本语言和框架,比如PHP和Ruby on Rails。 您可以通过设置jQuery.ajaxSettings.traditional = true;全局禁用此functionjQuery.ajaxSettings.traditional = true;

特定

 var p = {foo: [1,2,3], bar: 42}; 

traditional设置为true生成

 foo=1&foo=2&foo=3&bar=42 

虽然Python可以处理这些参数,也就是说它会为foo生成一个列表,但PHP只会考虑最后的foo参数。

但现在默认情况下,序列化的结果是(实际上是URI编码)

 foo[]=1&foo[]=2&foo[]=3&bar=42 

如前所述,PHP和RoR可以更好地处理这些问题。


或者更有趣的是这个。 鉴于:

 var p = {foo: {1: [3,4], 2:2,3:3}, bar: 42}; 

传统产品:

 foo=[object Object]&bar=42 

与“新”方式相比,这显然没有用处:

 foo[1][]=3&foo[1][]=4&foo[2]=2&foo[3]=3&bar=42