麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

javascript與cookie 的問題詳解

2019-11-20 21:44:16
字體:
供稿:網(wǎng)友

原來用 js 讀寫 cookie 一直沒有注意一個(gè)問題:
相同的 key 值,不同的 domain (locahost.dev.xxx.com, dev.xxx.com, xxx.com 等) 是可以同時(shí)存在于Cookie 里的 , document.cookie 能把這幾個(gè) cookie 都讀出來,但是沒有 domain 信息. 我也試著找用什么方法能把 cookie 的 domain 信息讀取出來,可是很不幸, 沒有找到(不知道你有沒有什么方法能把 domain 信息給讀出來, 如有,請(qǐng)賜教)
出現(xiàn)這個(gè)問題的場景:
剛開始的時(shí)候,是想讓 本地(localhost.dev.xxx.com) 和 dev (dev.xxx.com) 與 uat (xxx.com) 環(huán)境的 cookie 互不影響, 我跟據(jù) location.hostname 生成 cookieDomain

1 var cookieDomain = document.domain;   2 3  var tmp = location.hostname.split(.);   4 5  if(tmp.length > 2)6 7 cookieDomain = tmp.slice(1).join(.);
寫 cookie 的時(shí)候,我把 domain 設(shè)為這個(gè) cookieDomain , 這樣一來, 不同的壞境的 cookie 就會(huì)寫到不同的 domain 下面, 看似互不影響.
但是在取的時(shí)候, 可以取出來N個(gè)相同的 key 的 cookie 值來! 而我只取第一次出現(xiàn)的 cookie, 這樣就造成了取出的值很有可能是錯(cuò)的. 就這個(gè)問題, 客戶單位像狗皮膏藥一樣貼住我了!跟他們解釋了N次,說你們對(duì)外只提供一個(gè)網(wǎng)址, 瀏覽者的電腦不會(huì)出現(xiàn)取值錯(cuò)誤的情況(因?yàn)橹挥幸粋€(gè)  domain ). 可是牙的每次BUG匯總里,總會(huì)把這個(gè)問題列出來! 所有解釋等于對(duì)牛彈琴.
木折, 那我就把所有用 js 寫的 cookie 寫到根域名下吧, 省得這幫家伙叫來叫去,大問題不關(guān)注,小問題看賊細(xì)賊,本末倒置!

復(fù)制代碼 代碼如下:

(function(){

    // 清除舊版本的 cookie
    if(CTSZ.Cookie.get("cookieVersion") != Params.cookieVersion){
        var tmps = Params.orgDomain.split(.);
        var domain;
        var len = tmps.length;
        for(var i=0;i<= len - 3; i++){
            tmps.shift();
            domain = tmps.join(.);
            CTSZ.Cookie.empty("/", domain);
        }
        CTSZ.Cookie.set("cookieVersion", Params.cookieVersion, Params.cookieExpires, "/", Params.cookieDomain);
    }
})();

    $.Cookie = {};
    (function ($) {
        $.getExpires = function (y, m, d, h, i, s, ms) {
            var date = new Date();
            y = isNaN(y) ? date.getFullYear() : y;
            m = isNaN(m) ? date.getMonth() : m - 1;
            d = isNaN(d) ? date.getDate() : d;
            h = isNaN(h) ? date.getHours() : h;
            i = isNaN(i) ? date.getMinutes() : i;
            s = isNaN(s) ? date.getSeconds() : s;
            ms = isNaN(ms) ? date.getMilliseconds() : ms;
            return new Date(y, m, d, h, i, s, ms).toUTCString();
        }
        $.getExpiresByUTCString = function (UTCString) {
            var s = new Date(UTCString).toUTCString();
            if (s == NaN || s == Invalid Date)
                return null; // IE,Opera NaN , FF,Safari Invalid Date;
            else
                return s;
        }

        $.set = function (k, v, expires, path, domain, secure) {
            var cookie = k + = + encodeURIComponent(v);
            if (expires) cookie += ";expires=" + expires;
            if (path) cookie += ";path=" + path;
            if (domain) cookie += ";domain=" + domain;
            if (secure) cookie += ";secure";
            document.cookie = cookie;
        }

        /*
        以前是把所有 cookie 都取出放到一個(gè)對(duì)象里,在 get 的時(shí)候,直接從那個(gè)對(duì)象里取來,現(xiàn)在想想,那樣并不正確。因?yàn)榧偃缒硞€(gè) cookie 的過期時(shí)間過了,那個(gè)對(duì)象并沒有更新。
        */
        $.get = function (k) {
            var cks = document.cookie.split(;);
            var t;
            for (var i = 0; i < cks.length; i++) {
                t = cks[i].split(=);
                if (k == t[0].trim()) return t.length >= 2 ? decodeURIComponent(t[1]) : "";
            }
            return null;
        }
        $.remove = function (k, path, domain) {
            $.set(k, , $.getExpires(new Date().getFullYear() - 1), path, domain);
        }
        $.empty = function (path, domain) {
            var cks = document.cookie.split(;);
            var t;
            for (var i = 0; i < cks.length; i++) {
                $.remove(cks[i].split(=)[0].trim(), path, domain);
            }
        }
    })($.Cookie);

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 看黄在线 | 久久成人免费观看 | 亚洲视频在线视频 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 国产毛片毛片毛片 | 99亚洲伊人久久精品影院红桃 | 欧美一区中文字幕 | 日韩欧美电影一区二区三区 | 色视频在线| 羞羞视频免费网站入口 | 精品一区二区三区在线观看视频 | 亚洲国产综合在线观看 | 午夜热门福利 | 国产精品欧美日韩一区二区 | 免费看搡女人无遮挡的视频 | av在线在线| 黄色特级片黄色特级片 | 久草在线视频网 | 黄片毛片一级 | 亚洲性爰 | 欧美精品久久久久久久久久 | 激情久久一区二区 | 草久免费 | 日本黄色一级电影 | 99精品视频在线观看免费播放 | 免费看性xxx高清视频自由 | 国产精品视频海角社区88 | 免费a级网站 | 精品久久久一 | 成人三级视频在线观看 | 色柚视频网站ww色 | h久久 | 毛片在哪看 | 欧美一区二区三区中文字幕 | av在线观 | 欧美aaaaaaaa | 日本在线观看高清完整版 | 在线观看一区二区三区四区 | 在线观看网址av | 成人视屏免费看 | 成人三区四区 |