关于COOKIE使用过程中的一个小问题
在程序中要用到COOKIE,
网站website/login/login.aspx
传值userID到 website/web/tab/web.aspx中的FRAMESET下的一个FRAME menu.aspx
cookie={
setCookie:function(name,value)
{
/*
*---------------setCookie(name,value) -----------------
*setCookie(name,value)
* 功能:设置得变量name的值
* 参数:name,字符串;value,字符串.
* 实例:setCookie('username','baobao')
*---------------setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() +Days*24*60*60*1000);
document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString();
},
getCookie:function(name)
{
/*
*---------------getCookie(name) -----------------
*getCookie(name)
* 功能:取得变量name的值
* 参数:name,字符串.
* 实例:alert(getCookie("baobao"));
*---------------getCookie(name) -----------------
*/
var arr =document.cookie.match(new RegExp("(^|)"+name+"=([^;]*)(;|$)"));
if(arr !=null) return unescape(arr[2]);
return null;
}
}
发现怎么SETCOOKIE、GETCOOKIE都为NULL
后来度娘说用到FRAMESET涉及到跨域的问题,这,这,有域可跨吗?
试试吧,在网站IIS加一个HTTP头 P3P(问度娘)
结果依然!!!
我问遍所有的QQ群,没有得到任何的答案。
难道是我的SETCOOKIE和GETCOOKIE有问题?
我在以度娘了好久,没有错。
那,那……
我等了好几天。
其中我用两个网页测试都没有问题(注意是在同一个目录下)
我甚至怀疑是一个是.html,另一个是.aspx的原因
后来我发现我的两个页面不在一个目录下。
是不是这个原因呢?
我赶紧把两个测试页面放在同一个目录下测试,成功。
再放到不同的目录下测试,NULL
原来是这个原因,不同目录下的COOKIE不能共享!!
还是度娘(万能的度娘,我感谢你!)
后来网上也有朋友出来这个问题,
加上一小段就可以了。如下:
setCookie:function(name,value)
{
/*
*---------------setCookie(name,value) -----------------
*setCookie(name,value)
* 功能:设置得变量name的值
* 参数:name,字符串;value,字符串.
* 实例:setCookie('username','baobao')
*---------------setCookie(name,value) -----------------
*/
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date();
exp.setTime(exp.getTime() +Days*24*60*60*1000);
document.cookie = name +"="+ escape (value) + ";expires=" + exp.toGMTString()+";path=/";
}