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 相关文章推荐
picChange 图片切换特效的函数代码
May 06 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
JavaScript中最常用的10种代码简写技巧总结
Jun 28 Javascript
AngularJs点击状态值改变背景色的实例
Dec 18 Javascript
打通前后端构建一个Vue+Express的开发环境
Jul 17 Javascript
详解vuex的简单todolist例子
Jul 14 Javascript
javascript使用链接跨域下载图片
Nov 01 Javascript
jQuery实现鼠标滑动切换图片
May 27 jQuery
Vue 组件复用多次自定义参数操作
Jul 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
加速XP搜索功能堪比vista
2007/03/22 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
laravel5.6实现数值转换
2019/10/23 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
jquery 实现的全选和反选
2009/04/15 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
python+django加载静态网页模板解析
2017/12/12 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
会展中心部门工作职责
2013/11/27 职场文书
大学英语专业求职信
2014/06/21 职场文书
面试自我评价范文
2014/09/17 职场文书
开票员岗位职责
2015/02/12 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
基石观后感
2015/06/12 职场文书