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 相关文章推荐
IE 上下滚动展示模仿Marquee机制
Dec 20 Javascript
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
JS实现商品倒计时实现代码
May 03 Javascript
jquery高效反选具体实现
May 05 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
JavaScript设计模式经典之命令模式
Feb 24 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
Jul 23 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
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隐藏实际地址的文件下载方法
2015/04/18 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
vue实现购物车的小练习
2020/12/21 Vue.js
Python序列操作之进阶篇
2016/12/08 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python使用selenium实现批量文件下载
2019/03/11 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
企业门卫岗位职责
2013/12/12 职场文书
公司合并协议书范本
2014/09/30 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
乐山大佛导游词
2015/02/02 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript