下边的函数是用来初始化Cookie的,但是在 http://www.example.com/test 设置的值,在http://www.example.com/不能访问,请问Cookie的path如何设置才能让根目录也能访问值?
function setCookie(name,value,Days)
{
if(Days==0)
{
document.cookie = name + "="+ escape (value);
}
else
{
var exp  = new Date();    //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
}

解决方案 »

  1.   

    Cookie不存在设置路径的问题吧
    下面是个cookie练习的DEMO
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title>Cookie处理函数练习</title>
    <script language="JavaScript" type="text/javascript">
    var $=function(el){
        return (typeof el=='object')?el:document.getElementById(el);
    };
       var addCookie=function(objName,objValue,objHours){//添加cookie
    var str = objName + "=" + escape(objValue);
    if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
    var date = new Date();
    var ms = objHours*3600*1000;
    date.setTime(date.getTime() + ms);
    str += "; expires=" + date.toGMTString();
    }
    document.cookie = str;
    alert("添加cookie成功");
    };
    var getCookie=function(objName){//获取指定名称的cookie的值
    var arrStr = document.cookie.split("; ");
    for(var i = 0;i < arrStr.length;i ++){
    var temp = arrStr[i].split("=");
    if(temp[0] == objName){
    return unescape(temp[1]);
    }

    };
    var delCookie=function(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
    var date = new Date();
    date.setTime(date.getTime() - 10000);
    document.cookie = name + "=a; expires=" + date.toGMTString();
    alert("删除成功");
    };
    var add=function(){//添加Cookie
    var cookie_name = $("cookie_name").value;
    var cookie_value = $("cookie_value").value;
    var cookie_expireHours = $("cookie_expiresHours").value;
    if(cookie_name==""||cookie_value==""){
      alert("请填写完整Cookie的名称和值");
      return;
    }
    addCookie(cookie_name,cookie_value,cookie_expireHours);
    };
    var getall=function(){//读取所有保存的cookie字符串
        var str = document.cookie;
        if(str == ""){
     str = "没有保存任何cookie";
        }
       alert(str);
    };
    var get=function(){//读取单个该名称的cookie
    var cookie_name = $("cookie_name").value;
    var cookie_value = getCookie(cookie_name);
    if(cookie_name ==""){
       alert("请填写名称,根据名称进行查找");
     return;
    }
    if(cookie_value==null){
      cookie_value="没有该名称的cookie";
    }
    alert(cookie_value);
    };
    var del=function(){//删除该名称的cookie
    var cookie_name = $("cookie_name").value;
    if(cookie_name==""){
      alert("请填写名称,根据名称进行删除");
      return;
    }
    delCookie(cookie_name);
    };
    </script>
    </head>
    <body>
    <form name="myform">
    <div><label for="cookie_name">Cookie名称:</label><input type="text" name="cookie_name" /></div>
    <div><label for="cookie_value">Cookie &nbsp;值:</lable><input type="text" name="cookie_value" /></div>
    <div><label for="cookie_expireHours">过期时间(小时):</lable><input type="text" name="cookie_expiresHours" /></div><hr/>
    <div>
    <input type="button" value="添加该cookie" onclick="add()" />
    <input type="button" value="读取所有cookie" onclick="getall()" />
    <input type="button" value="读取该名称cookie的值" onclick="get()" />
    <input type="button" value="删除该名称cookie" onclick="del()" />
    </div>
    </form>
    <hr />
    </body>
    </html>
      

  2.   

    好像还是不行,不过用IFRAME也可以做的。