Если вы посмотрите на не минимизированную версию jQuery 1.4.2, соответствующие строки будут с 5264 по 5274:
function success() {
// If a local callback was specified, fire it and pass it the data
if ( s.success ) {
s.success.call( callbackContext, data, status, xhr );
}
// Fire the global callback
if ( s.global ) {
trigger( "ajaxSuccess", [xhr, s] );
}
}
jQuery просто вызывает функцию success
, примененную к объекту настроек (если он существует), не заботясь о том, что функция возвращает или выбрасывает.
Вместо этого вы можете использовать jQuery.ajaxSetup()
примерно так:
jQuery.ajaxSetup({
success: function() {
try {
if ( this.mysuccess ) {
this.mysuccess.apply( this, arguments );
}
}
catch(err) {
// whatever
}
}
});
И используйте mysuccess
(или как вы предпочитаете звонить) вместо success
для отдельных jQuery.ajax
вызовов.