zoukankan      html  css  js  c++  java
  • 同域名下两个子级域名共享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的值(和添加一样,省略掉前缀,域名前必须加.)
        }
    }

      

  • 相关阅读:
    快速幂 快速乘法
    扩展欧几里得学习笔记
    求逆序数数目(树状数组+离散化)
    隐式图的遍历
    随机数生成
    推倒重来
    动态规划初步
    子集生成
    东大oj1155 等凹函数
    P1278 单词游戏
  • 原文地址:https://www.cnblogs.com/chensv/p/10986270.html
Copyright © 2011-2022 走看看