JS Cookie存取值 和 域(domain)

  • Post author:
  • Post category:其他


JS Cookie存取值 和域(domain)

代码附上:

 <script type="text/javascript">
    //Cookie取值
    function readCookie (name)
    {
        var cookieValue = "";
        var search = name + "=";
        if (document.cookie.length > 0)
        {
            offset = document.cookie.indexOf (search);
            if (offset != -1)
            {
                offset += search.length;
                end = document.cookie.indexOf (";", offset);
                if (end == -1)
                    end = document.cookie.length;
                cookieValue = unescape (document.cookie.substring (offset, end))
            }
        }
        return cookieValue;
    }
    //Cookie设置值
    function writeCookie (name, value, hours)
    {
        var expire = "";
        if (hours != null)
        {
            expire = new Date ((new Date ()).getTime () + hours * 3600000);
            expire = "; expires=" + expire.toGMTString ();
        }
        document.cookie = name + "=" + escape (value) + expire;
    }
    //调用设置
    writeCookie ("myCookie", "my name", 24);
    //调用取值
    alert (readCookie ("myCookie"));
</script>

JS 中Cookie的路径(path)和域(domain)

cookie虽然是由一个网页所创建,但并不只是创建cookie的网页才能读 取该cookie。

在默认情况下,与创建cookie的网页在同一目录或子目录下的所有网页都可以读取该cookie。

1、如果在这个目录下还有子目录,要 使在子目录中也可以访问,则需要使用path参数设置cookie,语法如下:

document.cookie="name=value; path=cookieDir";

2、如果要使cookie在整个网站下可用,可以将cookieDir指定为根目录,示例如下:

document.cookie="userId=320; path=/";

上面所说都指的是在同一个目录中的访问,可是要想在不同虚拟目录中访问则要另外想办法来解决这个问题。

但是path不能解决在不同域中访问cookie的 问题。

在默认情况下,只有和设置cookie的网页在同一个Web服务器的网页才能访问该网页创建的cookie。

但可以通过domain参数来实现对其 的控制,其语法格式如下:

document.cookie="name=value; domain=cookieDomain";

具体代码如下,直接运行即可:

(1)设置路径:

<html>
    <head>
        <title>设置cookie的路径</title>
        <script>

           new Date().setDate(now.getDate()+1);
           var cookies="userName="+escape("哈哈")+";expires="+now.toString()+";path=/";
           document.cookie=cookies;
           document.write("cookie文件中的内容为:<br>",unescape(document.cookie));

        </script>

    </head>
    <body></body>
</html>

(2)设置域:

<html>
    <head>
        <title>设置cookie的路径</title>
        <scrip>
           new Date().setDate(now.getDate()+1);
           var cookies="userName="+escape("哈哈")+";expires="+now.toString()+";path=/;                domain=.baidu.com";
           document.cookie=cookies;
           document.write("cookie文件中的内容为:<br>",unescape(document.cookie));
        </script>
    </head>
    <body></body>
</html>



版权声明:本文为qq_16559905原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。