Я хочу уведомить сервер о том, что пользователь закрывает окно браузера.
Я пробовал все
$(window).bind("beforeunload", function() {
$.get("${contextPath}/notify?direction=logout");
});
и
$(window).unload( function() {
$.get("${contextPath}/notify?direction=logout");
});
и
$(window).unload(function() {
$.ajax({
url: "${contextPath}/notify?direction=logout"
});
});
но ни то, ни другое не работает, несмотря на то, что в руководстве сказано, что, вероятно, должно.
В Firefox у меня нет уведомлений только о закрытии окна, но есть уведомления об обновлении страницы. В Chrome у меня нет ни того, ни другого.
Я попытался отследить этот скрипт в Firebug или Chrome Developer Tools и обнаружил, что он начинает работать, если отследить! Поэтому я думаю, что это не работает нормально, потому что у него нет времени на отправку запроса до закрытия окна или навигации.
Это правда? Как выполнить мою задачу?
РЕШЕНИЕ
Это сработало:
$(window).bind("beforeunload",
function() {
$.ajax({
async: false,
url: 'notify'
});
}
);