Javascript 当用户关闭浏览器时,如何发送ajax查询?

Javascript 当用户关闭浏览器时,如何发送ajax查询?,javascript,node.js,ajax,postgresql,Javascript,Node.js,Ajax,Postgresql,我有一个问题,我找到了一些解决办法,但似乎没有一个能解决它。我想在用户关闭浏览器时执行ajax查询。我在前端使用javascript,在后端使用节点 我尝试使用window.onbeforeunload并在那里设置查询,但它似乎不起作用,并且beforeunload在浏览器关闭但用户刷新页面或关闭选项卡时触发。我只想在浏览器关闭时进行查询 这是我想做的查询: window.onbeforeunload = function () { $.ajax({ ty

我有一个问题,我找到了一些解决办法,但似乎没有一个能解决它。我想在用户关闭浏览器时执行ajax查询。我在前端使用javascript,在后端使用节点

我尝试使用window.onbeforeunload并在那里设置查询,但它似乎不起作用,并且beforeunload在浏览器关闭但用户刷新页面或关闭选项卡时触发。我只想在浏览器关闭时进行查询

这是我想做的查询:

window.onbeforeunload = function () {
        $.ajax({
            type:'GET',
            url:'/getMyInfo',
            data:{},
            success:function(){},
            error:function(){
                data=>{
                var userid=data.data.id;
                $.ajax({
                    type: 'POST',
                    url: "/logoutuser",
                    data: userid,
                    success: function () {
                        console.log('success logout');
                    },
                    error: function () {
                        console.log('error logout');
                    }
                });
        }}});
}
即使未设置查询,这也不起作用。
提前感谢

我认为您无法检测到浏览器关闭和选项卡关闭。JS不应该知道浏览器作为一个整体在做什么,它通常只是为当前页面(选项卡)提供信息。这听起来像是一个问题,您只能在页面卸载时检测,而不能在窗口关闭时检测。VLAZ我想做的是在浏览关闭时发送查询。我认为解决方案与我发布的类似。哪种方法是正确的?我想不出有什么解决办法。同样,JS不应该也不应该访问浏览器的状态。我甚至想不出任何页面需要区分选项卡、窗口或浏览器关闭的原因——它们在所有相关方面都是相似的。我过去处理这一问题的方法是使用websocket检测后端的断开连接,然后相应地采取行动。我理解这可能是一个基础设施的变化,但它可能值得考虑。我不认为你可以检测到浏览器关闭与标签关闭。JS不应该知道浏览器作为一个整体在做什么,它通常只是为当前页面(选项卡)提供信息。这听起来像是一个问题,您只能在页面卸载时检测,而不能在窗口关闭时检测。VLAZ我想做的是在浏览关闭时发送查询。我认为解决方案与我发布的类似。哪种方法是正确的?我想不出有什么解决办法。同样,JS不应该也不应该访问浏览器的状态。我甚至想不出任何页面需要区分选项卡、窗口或浏览器关闭的原因——它们在所有相关方面都是相似的。我过去处理这一问题的方法是使用websocket检测后端的断开连接,然后相应地采取行动。我理解这可能是基础设施的改变,但可能值得考虑。