Следующий код протестирован и отменяет все невыполненные запросы jQuery ajax при выгрузке страницы в Chrome, но он также используется Edge и IE с использованием клиентов без ошибок.
В качестве первого обработчика jQuery ready
укажите следующее:
$(onPageLoaded)
И поместите это где-нибудь доступное:
function onPageLoaded() {
var jqxhrs = [];
$(window).bind("beforeunload", function (event) {
$.each(jqxhrs, function (idx, jqxhr) {
if (jqxhr)
jqxhr.abort();
});
});
function registerJqxhr(event, jqxhr, settings) {
jqxhrs.push(jqxhr);
}
function unregisterJqxhr(event, jqxhr, settings) {
var idx = $.inArray(jqxhr, jqxhrs);
jqxhrs.splice(idx, 1);
}
$(document).ajaxSend(registerJqxhr);
$(document).ajaxComplete(unregisterJqxhr);
};