js监测页面关闭发送Ajax请求(浏览器关闭注销用户,清空session)

说明:

需求为页面关闭发送一个ajax请求,使关闭浏览器及时清空session(浏览器关闭session并不会清空)

网站同时只能一个用户登录,同一账号后登录的用户不能把前一个登录的用户踢下线,有一个问题是前一个用户不点击注销,那么只能等到session超时下一个用户才能登录。下面代码主要就是解决这个问题。

但是,下面代码只能监测一个页面的关闭而不能监测整个浏览器的关闭。这个问题目前还没有解决,还望各位大神给出解决方案。

 

 

<script src="static/js/jquery-3.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
	function logout() {
		var logoutURL = "/logout"; //用于注销用户的url
		if (logoutURL == "")
			return;
		var userAgent = navigator.userAgent.toLowerCase();
		//firefox在处理js时的安全级别较高,很多IE、Chrome中js可以使用的权限在Friefox中被限制
		if (userAgent.indexOf("msie") > -1) { //IE
			$.ajax({
				url : logoutURL,
				crossDomain : true,//crossDomain设置为true是为了解决跨域访问问题
				async : false,
				dataType : "jsonp"//dataType:"jsonp"这个属性也是为解决跨域访问问题,和crossDomain配合使用
			});
		} else { //FireFox Chrome
			$.ajax({
				url : logoutURL,
				async : false
			});
		}
	}
	//页面刷新之前执行
	window.onbeforeunload = function() {
		logout();
	}
	//在onbeforeunload后执行
	/* 	window.onunload = function(){
	 logout();
	 } */
</script>

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值