js设置cookie、删除cookie和读取cookie

责编:menVScode 2017-06-14 12:25 阅读(1317)

        1993年,网景公司雇员Lou Montulli为了让用户在访问某网站时,进一步提高访问速度,同时也为了进一步实现个人化网络,发明了今天广泛使用的Cookie。Cookie指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据。Cookie的作用就是用于解决“如何记录客户端的用户信息”。

        那么我们如何进行Cookie的操作呢?

        

        设置cookie

// 设置cookie | key代表键,val代表值,t代表过期时间(以天为单位)
function setCookie(key, val, t) {
    var oDate = new Date();
    oDate.setDate(oDate.getDate() + t);
    // 对cookie进行编码处理,以防cookie设置中有特殊字符无法识别
    document.cookie = key + '=' + encodeURI(val) + '; expires=' + oDate.toGMTString();
}

        删除cookie

// 删除cookie
function removeCookie(key) {
    setCookie(key, '', -1);
}

        获取cookie

// 获取cookie
function getCookie(key) {
    var arr1 = document.cookie.split('; ');
    for (var i = 0; i < arr1.length; i++) {
        var arr2 = arr1[i].split('=');
        if (arr2[0] == key) {
            // 对cookie进行解码处理
            return decodeURI(arr2[1]);
        }
    }
}

注:

        1、Cookie的存储是以域名的形式进行区分的;

        2、Cookie存放内容的大小是有限制的,不同浏览器的大小不一样;

        3、不同浏览器存放Cookie的位置不一样,所以不同浏览器的Cookie不能通用;

        4、Cookie默认的存储方式是临时的,当浏览器结束进程的时候,Cookie会自动销毁;

        5、如果想长时间保存一条Cookie信息,我们需要在设置该条Cookie的同时给其设置过期时间;

        6、通过document.cookie来获取当前域名下的Cookie时,获取的是当前域名下所有Cookie组成的字符串;

        7、如果Cookie设置过程中含有特殊字符,我们需要进行编码处理(encodeURI(val)),读取的时候也要进行解码(decodeURI(val))处理;

        特别说明:由于浏览器的安全机制措施,某些浏览器不支持本地文件Cookie功能,为获得一致的表现,可以在服务器环境下测试。

标签: js cookie
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码