window.addEventListener('beforeunload', sendRequestOnCloseTab, false);
function sendRequestOnCloseTab() {
if (!navigator.sendBeacon) {
return;
}
navigator.sendBeacon(
'/api/method',
JSON.stringify(
{
field: 'value'
}
)
);
}
Отправка запроса с помощью Beacon API не ожидает ответа сервера, а поэтому не блокирует страницу.