Решение проблемы parseerror в jQuery ajax
10.03.2011 23:04 от DyaGa
Столкнулся с проблемой, когда после обновления jQuery с версии 1.4.4. до версии 1.5.1 ajax запрос стал возвращать статус parseerror с ошибкой jQuery[...] was not called.
Как оказалось, источником проблемы является плагин jQuery.validation, который переопределяет любые заданые $.ajax настройки к настройкам по умолчанию (jsonp: "callback", jsonpCallback: function() {...}):
// create settings for compatibility with ajaxSetup
settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
т.е. даже если в настройках запроса $.ajax установить dataType: 'json', тип данных будут интерпертироваться как jsonp данные, отсюда и ошибка parseerror.
Пока что временным решением является следующий код:
$(function () {
$.ajaxSettings.cache = false;
$.ajaxSettings.jsonp = undefined;
$.ajaxSettings.jsonpCallback = undefined;
})
Но, лучше, загрузить с ГитХаба последнюю разрабатываемую версию плагина jQuery.validation: https://github.com/jzaefferer/jquery-validation, т.к. официально пока доступна версия 1.7 плагина jQuery.validation, которая не совместима с версией jQuery 1.5.x.
Добавить комментарий
Комментарий Роман | 04.07.2011
Спасибо, заработало! я уже все мозги разбил на части, все извилины заплёл, все дырки облизал...
Комментарий zatvorius | 08.09.2011
А мне почему то не помогло(( возможно есть еще варианты куда копать?
Комментарий DyaGa | 08.09.2011
zatvorius
Странно, по идее, в последней версии 1.8.1 такой ошибки не должно быть