FirefoxとSafariでは、beforeunloadが呼ばれても何も処理をしてくれないことがありました。 (ポップアップを表示するのはできるんですが…)
<html> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.min.js"></script> <a href="https://www.google.com">Google</a> <script> window.addEventListener("beforeunload",function() { axios.get('/test.txt') .then(function(response) { console.log("OK" + response) }) .catch(function(error) { console.log("NG" + error); }); }); </script> </body> </html>
このファイルを設置して、Chromeで開いて、リンクをクリックするとサーバのアクセスログに/test.txtが記録されます。 Firefox、Safariだと記録されません。
使い方が間違っているのかな?