JQuery 1.5 и новый тип данных "Text JSON"

Я только что обновил JQuery 1.5 и все мои вызовы ajax, которые возвращают JSON, и несколько плагинов мгновенно сломались.

В моем пред-1.5-коде я указал dataType как:

dataType: "json"

Изменение типа dataType на:

dataType: "text json"

Устраняет проблему, но я не хочу вручную изменять плагины, так как это повлияет на обновления.

Есть ли способ справиться с этим лучше с меньшим разрушением?

Ответы

Ответ 1

Эта проблема вызвана плагином проверки jQuery и тем, как он расширяет объект ajaxSettings для собственного использования (изменяет json-вызовы на вызовы jsonp). Надеюсь, скоро будет официальное обновление плагина проверки, но в то же время там доступен патч, который устраняет проблему:

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

Edit

Плагин JQuery Validation, совместимый с jQuery 1.5.1, доступен в git hub: https://github.com/jzaefferer/jquery-validation

Изменить # 2: Плагин jQuery Validation плагин 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/

Ответ 2

Я столкнулся с этой ошибкой JQuery, которая устраняет проблему http://bugs.jquery.com/ticket/8084.

Добавление следующего кода после объявления JQuery script устраняет проблему:

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

Ответ 3

Неподтвержденный код, добавьте это после включения jQuery и до того, как ваш пользовательский код запустится.

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