为了能够实现在每一个页面判断会员登录状态的功能,可以采用了页面时通过ajax传递参数通过后端返回的登录状态结果进行判断,这种方式实现的前提是登录状态在后端可以保持或者能够查询到并且不利用页面向后端发送特别参数。
html部分
<divid="state_content"></div>
jQuery(document).ready(function()
{
getUserData()
})
functiongetUserData()
{
varOption=
{
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)
{
returnfalse
}
jsondata=eval('('+data+')')
if(jsondata.state=="success")
{
varweburl='<aclass="username">欢迎你,'+jsondata.message.split('|')[1]+'</a><aclass="go_out"onclick="ExitLoginState()">退出</a>'
$("#state_content").html(weburl)//内容
}
else
{
vartextList='<ahref="/Login/index.shtml"rel="externalnofollow"rel="externalnofollow">【登录】</a><ahref="/Register/index.shtml"rel="externalnofollow"rel="externalnofollow">【注册】</a>'
$("#state_content").html(textList)//内容
}
},
beforeSend:function()
{
}
}
jQuery.ajax(Option)
returnfalse
}
functionExitLoginState()
{
varOption=
{
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)
{
returnfalse
}
jsondata=eval('('+data+')')
if(jsondata.state=="success")
{
alert("已经退出")
vartextList='<ahref="/Login/index.shtml"rel="externalnofollow"rel="externalnofollow">【登录】</a><ahref="/Register/index.shtml"rel="externalnofollow"rel="externalnofollow">【注册】</a>'
$("#state_content").html(textList)//内容
}
},
beforeSend:function()
{
}
}
jQuery.ajax(Option)
returnfalse
}
扩展资料
js自动识别终端并跳转的缺点:
一个企业需要做两个网站,那以后又出来很多终端设备。
例如iwatch:网站维护的成本,服务器成本都成倍的增加,这个时候企业主最需要的是为网站做响应式开发,让网站具备在不同设备下自动排版以确保在移动设备下的友好访问。
切图网凭借长期的web前端开发经验,长期从事html5,css3技术开发,对网站响应有独到的见解和研究,并且在移动互联网时代的背景下推出已有网站永久的、不依赖第三方的网站跨屏幕适配服务。
JavaScript无法从cookie中取到登录态,因为cookie只能用来存储少量的数据,而登录态需要存储更多的数据,所以JavaScript无法从cookie中取到登录态。另外,JavaScript也不支持持久性的存储,因此无法将登录态保存到cookie中。因此,为了实现登录态的保存,开发者需要使用更高级的技术,比如使用服务器端的会话管理技术,或者使用HTML5的Web Storage技术。BOA这种程序没搞过,不过java中处理这种问题的方法之一是:进入A页面登陆成功以后,服务器吧当前登陆信息保存在session中,进入B页面的时候里面写了一个js(从session中获取当前登陆信息),如果从session中取不到登陆信息,或者取到的信息为空,就说明没有登陆直接进入该页面的,让页面直接转跳到报错页面,不知道你的这种程序可以使用session不,如果不成的话,A页面登陆成功以后可以存放一个全局的标志,每进入B页面的时候js先去获取这个标识,看是否已经登陆,这只是我的思路,看看你还有没有更好的解决办法,这是我一个字一个字手动敲的,挺辛苦的,如果觉得对你有帮助的话就奖励个积分