同域名下两个子级域名共享cookie
Posted chensv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同域名下两个子级域名共享cookie相关的知识,希望对你有一定的参考价值。
有两个域名
s.a.com 和 s.b.com;
他们都是属于一个一级域名下的域名,并不是跨域;
前者为后台管理系统,有登录页面;后者为官网,没有登录功能;
现在的需求是:后台登录之后,官网也需要显示登录状态,后台退出之后,官网也会显示退出登录状态;
所以我们只需要在前者域名中写添加和删除cookie的代码即可。
添加cookie
//成功回调函数 success: function (data) $.each(data, function (ele, index) //ele是key;index是value addCookie(ele, index); setCookie(ele, index,1);//这里必须传入第三个参数 ); function addCookie(objName, objValue, objHours) //当前域名添加cookie var str = objName + "=" + escape(objValue); if (objHours > 0) //为0时不设定过期时间,浏览器关闭时cookie自动消失 var date = new Date(); var ms = objHours * 3600 * 1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString(); document.cookie = str; function setCookie(c_name,value,expiredays) //为同级域名设置cookie var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString()+";path=/;domain=.b.com") //domain的值(省略掉前缀,域名前必须加.)
清除cookie
// 清除所有cookie var keys = document.cookie.match(/[^ =;]+(?=\=)/g); if(keys) for(var i = keys.length; i--;) document.cookie = keys[i] + ‘=0;expires=‘ + new Date(0).toUTCString(); document.cookie = keys[i] + ‘=0;path=/;domain=.b.com;expires=‘ + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com domain的值(和添加一样,省略掉前缀,域名前必须加.)
以上是关于同域名下两个子级域名共享cookie的主要内容,如果未能解决你的问题,请参考以下文章
Thinkphp框架下(同服务器下)不同二级域名之间session互通共享设置