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

      

  • 相关阅读:
    SBT树
    WGS84、Web墨卡托、火星坐标、百度坐标互转
    Chord算法
    马尔科夫及隐含马尔科夫模型
    VirtualBox的四种网络连接方式
    匈牙利算法求解任务分配问题
    回溯与分支定界
    【Docker】docker安装mysql
    【RocketMQ】同一个项目中,同一个topic,可以存在多个消费者么?
    【Feign调用异常】org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
  • 原文地址:https://www.cnblogs.com/chensv/p/10986270.html
Copyright © 2011-2022 走看看