window.addEventListener (‘beforeunload’ не работает в chrome

#javascript #google-chrome #addeventlistener

#javascript #google-chrome #addeventlistener

Вопрос:

когда браузер или вкладка закрываются, мне нужно отправить запрос на выход на сервер, и я использую следующий код. Он работает во всех браузерах, кроме Chrome.

  function httpGetLogout(url)
    {
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.open( "GET", url, false ); // false for synchronous request
        xmlHttp.send( null );
        return xmlHttp.responseText;
    }
    
    function autoLogout(){
            window.addEventListener('beforeunload', function (e) {
                httpGetLogout('/logout');
                e.preventDefault();
                e.returnValue = '';
            });
    }
  

Комментарии:

1. Синхронный XHR устарел. Кроме того, beforeunload событие может никогда не сработать. Не рекомендуется полагаться на это.

2. Спасибо D. Pardal, я попробовал ‘onbeforeunload’, также все та же проблема в браузере Chrome.