jQuery 1.4.2 JSON格式打破了以前在1.3.2中工作的内容

时间:2010-04-08 21:22:12

标签: jquery asp.net-mvc jquery-1.4

我刚刚将我的jQuery从1.3.2升级到1.4.2,我认为它给了我一些问题。我有一个$.post()函数调用一个控制器方法,并传递一些我格式化的数据:

$.post(url, { arrayParam: myArray, param2: false }, someCallback, 'html');

在Firebug中,POST说1.3.2中的参数如下所示:

arrayParam: 100
arrayParam: 101 (etc..)

但对于1.4.2,它们看起来像这样:

arrayParam[]: 100

这打破了我的控制器,它期待List<Int32> arrayParam(并且导致代码库周围出现一些JSON问题)。有没有办法绕过这个没有恢复到1.3.2或重新编程我的所有控制器?

由于

1 个答案:

答案 0 :(得分:9)

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

jQuery的ajax方法对传入的数据使用$ .param()。

有关详细信息,请参阅jquery param

以下是您的修复:

jQuery.ajaxSettings.traditional = true;