首页 > 代码库 > Cookie基础

Cookie基础


周末百度笔试,答得题都会,就是不仔细不心细,提前一个小时交卷子,想起来就已经晚了。问了一个cookie的问题,我SB的蒙住了,于是乎,似乎是跪掉了,回来后总结了下Cooke的相关问题。
###获取cookie
javascript中对cookie的接口操作方法就是利用document.cookie来进行的,获取cookie的方法如下。

var str = document.cookie;

 


需要注意的是,cookie保存到字符串是经过URL编码的,所以使用时需要进行解码。

###创建cookie
与获取cookie方法相同,创建cookie依旧使用document.cookie,下面举一个简单的例子。

document.cookie="name1=value1;name2=value2";

 



如例子中所看到的,cookie的格式是一个个名值对组成,并由分号分隔开。
###删除cookie
javascript中并没有直接删除cookie的方法,所以只能通过从新设置cookie,并将cookie的失效时间调整为已经过去的事件,从而达到删除cookie的方法。
以下是高程三中的cookie方法整合:


var CookieUtil = {

    get: function (name){//获取cookie
        var cookieName = encodeURIComponent(name) + "=",
            cookieStart = document.cookie.indexOf(cookieName),
            cookieValue = null,
            cookieEnd;
            
        if (cookieStart > -1){
            cookieEnd = document.cookie.indexOf(";", cookieStart);
            if (cookieEnd == -1){
                cookieEnd = document.cookie.length;
            }
            cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
        }

        return cookieValue;
    },
    
    set: function (name, value, expires, path, domain, secure) {
      //设置cookie
        var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);
    
        if (expires instanceof Date) {
            cookieText += "; expires=" + expires.toGMTString();
        }
    
        if (path) {
            cookieText += "; path=" + path;
        }
    
        if (domain) {
            cookieText += "; domain=" + domain;
        }
    
        if (secure) {
            cookieText += "; secure";
        }
    
        document.cookie = cookieText;
    },
    
    unset: function (name, path, domain, secure){
    //删除cookie通过重新设置cookie,并将失效日期设置为过去的时间。
        this.set(name, "", new Date(0), path, domain, secure);
    }

};

 


以上就是cookie的小部分内容,学习需要谨慎,基础至关重要。