在做lady频道时遇到的一个cookie的路径问题。
当我在lady.6.cn/下种一个cookie(actionType)时. 在firefox中,在lady.6.cn/space下存在一个同名cookie时,firfox
会直接读/space下的cookie,忽略lady.6.cn/下的cookie(即父路径cookie). 也就是说如果,/space的action为空时,
firefox就认为action为空,不管父级同名cookie.
与之对比的是ie,在lady.6.cn/下种cookie(action). 在/space下读cookie 时,即使/space下的action为空,ie会读父级同名
cookie,相当于把父路径cookie和子路径cookie合起来读。但是优先读本路径cookie.
之前我犯过的另外一个错误导致我调试了很长时间而不知所以然,那就是在设置 cookie 和删除cookie时忽略了
路径的重要性。而我的错误就是,在父路径设置一个cookie,在子路径试图删除它,却没有指定路径,导致怎么删也删不了。
以后一定要注意:删除cookie时一定要指定设置该cookie时的路径。
我用到的设置与删除 cookie的两个函数
- function setCookie(name, value, expires, path, domain, secure){
- document.cookie = name + "=" + escape(value) +
- ((expires) ? "; expires=" + expires : "") +
- ((path) ? "; path=" + path : "") +
- ((domain) ? "; domain=" + domain : "") +
- ((secure) ? "; secure" : "");
- }
- function delCookie(name,path){
- var guoqu = new Date();
- expiresTime = guoqu.setTime(guoqu.getTime() - 10000);
- setCookie(name,'',expiresTime,path) ;
- }