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 实现TreeView CheckBox全选效果
Jan 11 Javascript
使用jquery自定义鼠标样式满足个性需求
Nov 05 Javascript
使用jquery修改表单的提交地址基本思路
Jun 04 Javascript
用jquery修复在iframe下的页面锚点失效问题
Aug 22 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 Javascript
JavaScript 判断对象中是否有某属性的常用方法
Jun 14 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
JavaScript面向对象核心知识与概念归纳整理
May 09 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
Oct 29 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
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP操作数组相关函数
2011/02/03 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
Python中List.count()方法的使用教程
2015/05/20 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
numpy排序与集合运算用法示例
2017/12/15 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
Python各种扩展名区别点整理
2020/02/27 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
在Mac中配置Python虚拟环境过程解析
2020/06/22 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
计算机应用毕业生自荐信
2013/10/23 职场文书
专业销售业务员求职信
2013/11/18 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
小学教师师德整改措施
2014/09/29 职场文书
2014年老干部工作总结
2014/11/21 职场文书
飞屋环游记观后感
2015/06/08 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python