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
}
});
Ответ 4
См. ответ parsererror после запроса jQuery.ajax с типом содержимого jsonp
В частности, используйте
$.getJSON(url,
function(data){
yourFunction(data);
return false;
});