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>

猜你喜欢

转载自blog.csdn.net/Bruce_Up/article/details/84549174