Javascript 当用户关闭浏览器时,如何发送ajax查询?
我有一个问题,我找到了一些解决办法,但似乎没有一个能解决它。我想在用户关闭浏览器时执行ajax查询。我在前端使用javascript,在后端使用节点 我尝试使用window.onbeforeunload并在那里设置查询,但它似乎不起作用,并且beforeunload在浏览器关闭但用户刷新页面或关闭选项卡时触发。我只想在浏览器关闭时进行查询 这是我想做的查询:Javascript 当用户关闭浏览器时,如何发送ajax查询?,javascript,node.js,ajax,postgresql,Javascript,Node.js,Ajax,Postgresql,我有一个问题,我找到了一些解决办法,但似乎没有一个能解决它。我想在用户关闭浏览器时执行ajax查询。我在前端使用javascript,在后端使用节点 我尝试使用window.onbeforeunload并在那里设置查询,但它似乎不起作用,并且beforeunload在浏览器关闭但用户刷新页面或关闭选项卡时触发。我只想在浏览器关闭时进行查询 这是我想做的查询: window.onbeforeunload = function () { $.ajax({ ty
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检测后端的断开连接,然后相应地采取行动。我理解这可能是基础设施的改变,但可能值得考虑。