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