同域名下兩個子級域名共享cookie


有兩個域名

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[i] + '=0;expires=' + new Date(0).toUTCString();
          document.cookie = keys[i] + '=0;path=/;domain=.b.com;expires=' + new Date(0).toUTCString();//清除一級域名下的或指定的,例如 .kevis.com   domain的值(和添加一樣,省略掉前綴,域名前必須加.)
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM