查看: 51|回覆: 0

同域名下两个子级域名共享cookie

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-6-25
發表於 2019-6-6 17:52:00 | 顯示全部樓層 |閲讀模式

有两个域名

s.a.com 和 q.a.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=.a.com") //domain的值(省略掉前缀,域名前必须加.)
}  


清除cookie

// 清除所有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的值(和添加一样,省略掉前缀,域名前必须加.)
    }
}

  



来源:https://www.cnblogs.com/chensv/p/10986270.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部