jQuery基于ajax实现页面加载后检查用户登录状态的方法


Posted in Javascript onFebruary 10, 2017

本文实例讲述了jQuery基于ajax实现页面加载后检查用户登录状态的方法。分享给大家供大家参考,具体如下:

拥有会员功能的网站,如果会员已经登录,那么要显示相应的登录状态,而且这种显示的需求是在网站的每个页面都有的(目前国内网站貌似都是这么做的,还没有见过其他形式的状态显示方式),这样,在打开一个新的页面时就要知道这个会员是否已经登录,需要判断登录的状态。

1、解决方案。

为了能够实现在每一个页面判断会员登录状态的功能,我采用了页面时通过ajax传递参数通过后端返回的登录状态结果进行判断,当然,这种方式实现的前提是登录状态在后端可以保持或者能够查询到并且不利用页面向后端发送特别参数。

2、代码部分。

(1)html部分

<div id="state_content"></div>

(2)jquery部分

jQuery(document).ready(function ()
{
  getUserData();
});
function getUserData()
{
  var Option =
   {
    url: encodeURI('/Handler/AuthAccounts.ashx?action=getloginstate'),
    type: "post",
    dataType: 'text',
    cache: false, //设置为 false 将不会从浏览器缓存中加载请求信息。
    async: true, //(默认: true),所有请求均为异步请求。发送同步请求,请将此选项设置为 false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
    timeout: 150000, //设置请求超时时间(毫秒)。此设置将覆盖全局设置。
    error: function ()
    {
    },
    success: function (data, textStatus)
    {
     if (data == null || data == undefined)
     {
      return false;
     }
     jsondata = eval('(' + data + ')');
     if (jsondata.state == "success")
     {
      var weburl = '<a class="username">欢迎你,' + jsondata.message.split('|')[1] + '</a><a class="go_out" onclick="ExitLoginState()">退出</a>';
      $("#state_content").html(weburl); //内容
     }
     else
     {
      var textList = '<a href="/Login/index.shtml" rel="external nofollow" rel="external nofollow" >【登录】</a><a href="/Register/index.shtml" rel="external nofollow" rel="external nofollow" >【注册】</a>';
      $("#state_content").html(textList); //内容
     }
    },
    beforeSend: function ()
    {
    }
   };
  jQuery.ajax(Option);
  return false;
}
function ExitLoginState()
{
  var Option =
   {
    url: encodeURI('/Handler/AuthAccounts.ashx?action=exitloginstate'),
    type: "post",
    dataType: 'text',
    cache: false, //设置为 false 将不会从浏览器缓存中加载请求信息。
    async: true, //(默认: true),所有请求均为异步请求。发送同步请求,请将此选项设置为 false。同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
    timeout: 150000, //设置请求超时时间(毫秒)。此设置将覆盖全局设置。
    error: function ()
    {
    },
    success: function (data, textStatus)
    {
     if (data == null || data == undefined)
     {
      return false;
     }
     jsondata = eval('(' + data + ')');
     if (jsondata.state == "success")
     {
      alert("已经退出");
      var textList = '<a href="/Login/index.shtml" rel="external nofollow" rel="external nofollow" >【登录】</a><a href="/Register/index.shtml" rel="external nofollow" rel="external nofollow" >【注册】</a>';
      $("#state_content").html(textList); //内容
     }
    },
    beforeSend: function ()
    {
    }
   };
  jQuery.ajax(Option);
  return false;
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 变量基础知识
Nov 07 Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
JavaScript 中的日期和时间及表示标准介绍
Aug 21 Javascript
js数组去重的5种算法实现
Nov 04 Javascript
利用vue写todolist单页应用
Dec 15 Javascript
JS实现DIV高度自适应窗口示例
Feb 16 Javascript
微信小程序自定义组件
Aug 16 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 Javascript
VUE中使用MUI方法
Feb 12 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
vue 全局环境切换问题
Oct 27 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
javascript自执行函数
Feb 10 #Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
Feb 10 #Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
Feb 10 #Javascript
JS验证不重复验证码
Feb 10 #Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 #Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 #Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 #Javascript
You might like
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php绘制一个矩形的方法
2015/01/24 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
浅析Python中的for 循环
2016/06/09 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python3爬虫全国地址信息
2019/01/05 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
EJB实例的生命周期
2016/10/28 面试题
资源环境与城市管理专业推荐信
2013/11/30 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
关于逃课的检讨书
2014/01/23 职场文书
大学运动会通讯稿
2014/01/28 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
员工考勤管理制度
2015/08/06 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
Java Spring Lifecycle的使用
2022/05/06 Java/Android