我们知道COOKIE保存在客户端,但是我们在设置和读取COOKIE的时候几乎无论使用什么语言编程都是在服务器端操作的,原理是通过HTTP的header传输信息。其实客户端的脚本语言JavaScript也是可以操作COOKIE的,默认情况下服务器端设置的COOKIE数据也是可以操作的,下面给出封装好的函数。

    /*设置cookie*/
    function setCookie(name,value,expires)
    {
       
        var exp = new Date();
        exp.setTime(exp.getTime() + expires*1000);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }

    //获取cookie
    function getCookie(name)
    {
        var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
        if(arr != null) return unescape(arr[2]); 
        return false;
    }

  其实服务器端程序设置的COOKIE如果不希望COOKIE读取也是可以的,以PHP为例可以在使用setcookie的时候第七个参数即httponly设置为true,这样使用Js就无法读取了,并且更安全可以防止XSS窃取cookie,代码大致如下,更为详细的参数解释可以参考PHP手册。

setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1,true);