【问题标题】:jQuery 1.4.2 JSON format breaking what used to work in 1.3.2jQuery 1.4.2 JSON 格式打破了过去在 1.3.2 中的工作方式
【发布时间】:2011-02-05 21:48:48
【问题描述】:

我刚刚将我的 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 或重新编程我的所有控制器的情况下解决这个问题??

谢谢

【问题讨论】:

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


    【解决方案1】:

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

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

    请参阅jquery param 了解更多信息。

    这是你的解决方法:

    jQuery.ajaxSettings.traditional = true;
    

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2021-12-17
      • 1970-01-01
      • 2023-03-26
      相关资源
      最近更新 更多