Лучшее решение - использовать navigator.sendBeacon . Это совершенно новая функциональность, которая начинает реализовываться в новых версиях браузеров. Эта функция доступна в браузерах, более новых, чем Chrome 39 и Firefox 31. На момент написания этой статьи она не поддерживается Internet Explorer и Safari. Чтобы убедиться, что ваш запрос отправляется в браузерах, которые еще не поддерживают новые функции, вы можете использовать это решение:
var navigator.sendBeacon = navigator.sendBeacon || function (url, data) {
var client = new XMLHttpRequest();
client.open("POST", url, false); // third parameter indicates sync xhr
client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
client.send(data);
};
Эта функция не позволяет регистрировать обратный вызов onsuccess, хотя.