Esta respuesta a una pregunta relacionada es lo que funcionó para mí:
https://stackoverflow.com/a/10701856/5114
Nota la primera línea donde el @grr dice: "El uso de ajaxSetup no es correcto"
Puede adaptar su Responda para agregar su propia función a la ventana si desea llamarlo usted mismo en lugar de usar window.onbeforeunload
como lo hacen.
// Most of this is copied from @grr verbatim:
(function($) {
var xhrPool = [];
$(document).ajaxSend(function(e, jqXHR, options){
xhrPool.push(jqXHR);
});
$(document).ajaxComplete(function(e, jqXHR, options) {
xhrPool = $.grep(xhrPool, function(x){return x!=jqXHR});
});
// I changed the name of the abort function here:
window.abortAllMyAjaxRequests = function() {
$.each(xhrPool, function(idx, jqXHR) {
jqXHR.abort();
});
};
})(jQuery);
Luego puede llamar al window.abortAllMyAjaxRequests();
para abortarlas todas. Asegúrese de agregar un .fail(jqXHRFailCallback)
a sus solicitudes de ajax. La devolución de llamada será 'abortar' como textStatus
para que sepa lo que sucedió:
function jqXHRFailCallback(jqXHR, textStatus){
// textStatus === 'abort'
}
posible duplicado de [Stop todas las peticiones ajax activos en jQuery] (http://stackoverflow.com/questions/1802936/stop-all- active-ajax-requests-in-jquery) – Shoban
@shoban, pero creo que RobertW está preguntando si hay una manera si NO tienes un control para ellos. – 7wp
Esta pregunta puede proporcionarle lo que está buscando http://stackoverflow.com/questions/1802936/stop-all-active-ajax-requests-in-jquery – codingbadger