vue监听关闭页面 在关闭页面前发送axios请求 如何先发送请求 再关闭页面

发布于 2022-09-07 08:52:08 字数 968 浏览 23 评论 0

现在碰到的问题就是关闭页面时axios请求总提交不了,请问有什么解决的方法么?

        window.addEventListener('beforeunload', function() {
      beforeUnloadTimestamp = new Date().getTime();
  })

  window.addEventListener('unload', function() {
    beforeUnloadTimestamp = beforeUnloadTimestamp || 0;
    localStorage.setItem('onload', new Date().getTime());
    // 测试chrome和ie11 得出,chrome,IE11 // 刷新时 chrome >=11ms ,ie11 >=2ms 左右, 在关闭时,chrome间隔在 >=2ms,IE11 >=3000ms
    if (isIE) {
      if (new Date().getTime() - beforeUnloadTimestamp > 500) {
        isClose = true;
      }
    } else {
      if (new Date().getTime() - beforeUnloadTimestamp < 5) {
        isClose = true;
      }
    }
    
    if (isClose) {
      axios.get('/au/logout').then(res => {
        window.sessionStorage.clear();
      });
      localStorage.setItem('close', new Date().getTime());
    }else{
      localStorage.setItem('refresh', new Date().getTime());
    }
  })

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑饮青盏花 2022-09-14 08:52:08

没有。请求是异步的,unload 不会等你请求返回才继续。

燃情 2022-09-14 08:52:08

可以将ajax请求改成同步请求,请求返回后再关闭页面

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文