方法一:讲述了jQuery基于ajax实现页面加载后检查用户登录状态的方法。分享给大家供大家参考,具体如下:
拥有会员功能的网站,如果会员已经登录,那么要显示相应的登录状态,而且这种显示的需求是在网站的每个页面都有的(目前国内网站貌似都是这么做的,还没有见过其他形式的状态显示方式),这样,在打开一个新的页面时就要知道这个会员是否已经登录,需要判断登录的状态。
1、解决方案。
为了能够实现在每一个页面判断会员登录状态的功能,我采用了页面时通过ajax传递参数通过后端返回的登录状态结果进行判断,当然,这种方式实现的前提是登录状态在后端可以保持或者能够查询到并且不利用页面向后端发送特别参数。
2、代码部分。
(1)html部分
1 |
|
(2)jquery部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
使用session存储,确定用户是否登录,从而确定页面跳转至哪个页面。 判断本地有无customerID: function jumpTo(p, url) { var customerId=sessionStorage.customerId; if (customerId == undefined) { p.attr("href", "page/Login/login.html"); <span style="white-space:pre"> </span>} else { p.attr("href", url); } } function infoJumpTo() { var $info = $("#info"); jumpTo($info, "http://localhost/page/AmountAscension/amountAscension.html"); } function starJumpTo() { var $star = $("#star"); jumpTo($star, "http://localhost/page/MyAccount/myAccount.html"); } html中,相应的a标签中,写οnclick="infoJumpTo"等就可以了。 但登录页面的customerID是如何存储到本地的session中的呢? function confirm(){ var tel=$tel.val();//获取页面中登录名和密码 var pwd=$pwd.val(); if(tel==""|| pwd==""){//判断两个均不为空(其他判断规则在其输入时已经判断) alert("手机号密码均不能为空!") return false; }else{//以上均符合要求,则调用登录esb接口 $.ajax({ url:config.baseServerUrl + '/account/login',//相对应的esb接口地址 type:'post', data:{mobile:tel,password:pwd},//向服务器(接口)传递的参数 success:function(data){//服务器(接口)返回来的数据 if(data.success){//如果返回来的信息说明提交的信息为正确的 var customerId = data.attr.customerInfo.id;//将数据中用户信息的ID赋值给变量 sessionStorage.customerId = customerId;//将变量存储到本地sessionStorage中,并且value为customerID window.location.href='http://localhost/index.html';//正确登录后页面跳转至 } else{//如果返回来的信息说明提供的信息为错误的 if(tel != data.tel){//判断是用户名还是密码错误,提示相应信息 alert(data.message); $tel.val(""); $pwd.val(""); return false; } if(pwd != data.pwd){ alert(data.message); $pwd.val(""); return false; } } } }) } } 登录页面,人们一般习惯输完信息后,直接点击enter免除手动点击登录按钮,则js代码如下: //判断是否敲击了Enter键 $(document).keyup(function(event){ if(event.keyCode ==13){ $("#login").trigger("click"); } }); |