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

      

  • 相关阅读:
    CC.NET+SVN+Msbuild
    react服务端/客户端,同构代码心得
    为什么国人很难出高质量开源
    FKP,一套全栈框架,基于react、webpack、koa1、babel
    嵌入式工程师的发展路线
    浅谈学习单片机的一些职业规划
    关于嵌入式新手面试的一些小技巧
    几点心得送给学习嵌入式的新手
    新手学习嵌入式需要掌握的几点知识点
    从迷茫到转机,一个嵌入式工程师的经历
  • 原文地址:https://www.cnblogs.com/chensv/p/10986270.html
Copyright © 2011-2022 走看看