关闭浏览器发送请求

import { getUserToken, getToken } from "@/utils/auth"
export default {
    data() {
        return {
            beforeUnloadTime: "",
            gapTime: "",
        }
    },
    mounted() {
        window.addEventListener("beforeunload", (e) => {
            this.beforeunloadHandler(e)
            e.preventDefault();
            e.returnValue = '';
        });
        window.addEventListener("unload", e => this.unloadHandler(e));;
    },
    destroyed() {
        window.removeEventListener("beforeunload", e => this.beforeunloadHandler());
        window.removeEventListener("unload", e => this.unloadHandler());
    },
    methods: {
        beforeunloadHandler() {
            this.beforeUnloadTime = new Date().getTime()
            console.log('this.beforeUnloadTime ==>', this.beforeUnloadTime);
        },
        async unloadHandler() {
            if (JSON.parse(getUserToken())) {
                this.gapTime = new Date().getTime() - this.beforeUnloadTime;
                console.log(' this.gapTime==>', this.gapTime);
                if (this.gapTime <= 5) {
                    const userId = new FormData()
                    userId.append("userId", JSON.parse(getUserToken()).id)
                    fetch("/api/usermodule/user/exitAccount", {
                        method: "POST",
                        body: userId,
                        headers: { token: getToken() },
                        keepalive: true
                    }).then(res => res.json()).then(data => { })
                }
            }

        },
    },
}

posted @ 2022-06-14 10:44  云霄紫潭  阅读(152)  评论(0编辑  收藏  举报