关于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=/"; }
转载于:https://www.cnblogs.com/ssqhan/p/5302931.html