同域名下两个子级域名共享cookie
<p style="text-align: left">有两个域名</p><p style="text-align: left">s.a.com 和 q.a.com;</p>
<p style="text-align: left">他们都是属于一个一级域名下的域名,并不是跨域;</p>
<p style="text-align: left">前者为后台管理系统,有登录页面;后者为官网,没有登录功能;</p>
<p style="text-align: left">现在的需求是:后台登录之后,官网也需要显示登录状态,后台退出之后,官网也会显示退出登录状态;</p>
<p style="text-align: left">所以我们只需要在前者域名中写添加和删除cookie的代码即可。</p>
<p style="text-align: left"> </p>
<h2><span style="font-size: 18pt">添加cookie</span></h2>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:false;">//成功回调函数
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=.a.com") //domain的值(省略掉前缀,域名前必须加.)
}</pre>
</div>
<h2 class="brush:javascript;gutter:false;"><span style="font-size: 18pt"><br>清除cookie</span></h2>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">// 清除所有cookie
var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
if(keys) {
for(var i = keys.length; i--;){
document.cookie = keys + '=0;expires=' + new Date(0).toUTCString();
document.cookie = keys + '=0;path=/;domain=.b.com;expires=' + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com domain的值(和添加一样,省略掉前缀,域名前必须加.)<br> }<br>}</pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/chensv/p/10986270.html
頁:
[1]