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 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
javascript模拟的Ping效果代码 (Web Ping)
Mar 13 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
JS生成随机字符串的多种方法
Jun 10 Javascript
JavaScript DOM 学习总结(五)
Nov 24 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
Dec 01 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
mvc中form表单提交的三种方式(推荐)
Aug 10 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
Feb 08 Javascript
jQuery+ajax实现用户登录验证
Sep 13 jQuery
如何编写一个 Webpack Loader的实现
Oct 18 Javascript
原生js实现放大镜组件
Jan 22 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
Phpbean路由转发的php代码
2008/01/10 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
获取URL文件名后缀
2013/10/24 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
js 深拷贝函数
2008/12/04 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
jQuery把表单元素变为json对象
2013/11/06 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python实现超简单端口转发的方法
2015/03/13 Python
python字符串对其居中显示的方法
2015/07/11 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
Python创建自己的加密货币的示例
2021/03/01 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
Puma印度官网:德国运动品牌
2019/10/06 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
农村门前三包责任书
2014/07/25 职场文书
争先创优公开承诺书
2014/08/30 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
党员活动总结
2015/02/04 职场文书
爱护环境建议书
2015/09/14 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis