JQuery 1.5和新的“Text JSON”数据类型

我刚刚更新到JQuery 1.5和所有返回JSON的ajax调用,并且一些插件立即崩溃。

在我的1.5之前的代码中,我指定了dataType,如:

dataType: "json" 

将dataType更改为:

 dataType: "text json" 

修复了问题,但我不想手动更改插件,因为这会影响升级。

有没有办法以更少的干扰更好地处理这个问题?

这个问题是由jQueryvalidation插件以及如何扩展ajaxSettings对象以供自己使用(更改json调用jsonp调用)引起的。 很快就会对validation插件进行官方更新,但与此同时,这里有一个补丁可以修复问题:

https://github.com/bigfix/jquery-validation/commit/9aa53f9241224ba349f9fe1b2c801be0f431b63b

编辑

jQuery Validation Plugin,兼容jQuery 1.5.1,可在git hub上找到: https : //github.com/jzaefferer/jquery-validation

编辑#2 :jQuery Validation Plugin 1.8,与jQuery 1.5.1(及更早版本)兼容发布:

阅读: http : //bassistance.de/2011/03/25/release-validation-plugin-1-8/

下载它: http : //bassistance.de/jquery-plugins/jquery-plugin-validation/

我遇到了这个修复问题的JQuery bug http://bugs.jquery.com/ticket/8084

在JQuery脚本声明之后添加以下代码可以解决问题:

$ .ajaxSetup({jsonp:null,jsonpCallback:null});

未经测试的代码,在包含jQuery之后,在自定义代码运行之前添加此代码。

 jQuery.ajaxSetup({ converters: { "json": jQuery.parseJSON, "* json": jQuery.parseJSON } }); 

在使用jsonp内容类型的jQuery.ajax请求之后,请参阅parsererror的答案

特别是使用

 $.getJSON(url, function(data){ yourFunction(data); return false; });