我在某个页面写了cookie,然后在另一个页面中调用这个值是没问题的,但是如果在另一个页中修改这个cookie就不行了,他会自动增加一个同名的
例如在页面A中设置cookie a_cookie的值为1,得到的cookie就是:
a_cookie=1;ASPSESSIONIDCQCCATDC=*************
然后我在页面B能读出cookie是:
a_cookie=1;ASPSESSIONIDCQCCATDC=*************
但是当我写入(修改) a_cookie的值是2的时候,结果就出现:
a_cookie=1;a_cookie=1;ASPSESSIONIDCQCCATDC=*************
为什么会出现这样的情况呢?
是不是跟两个文件是不同文件路径有关?
怎么改?
读写cookie的函数:
function setCookie(name, value) //cookies设置
{
var argv = setCookie.arguments;//获取参数数组
var argc = setCookie.arguments.length;//
var expires = (argc > 2) ? argv[2] : null;//是否设置cookies日期
if(expires!=null)
{
var LargeExpDate = new Date ();
LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
}
document.cookie = name + "= " + escape (value)+ "; "+((expires == null) ? " " : ( "; expires= " +LargeExpDate.toGMTString()))
}
function getCookie(Name) //cookies读取
{
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
return unescape(document.cookie.substring(offset, end))
}
else return " "
}
return " "
}
------解决方案--------------------
如果想修改的话,就把从前的销毁,然后重新建立一个,赋予新的值,就可以了
------解决方案--------------------
你在写cookie的时候不判断是否已经存在同名的cookie???
------解决方案--------------------
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie=name + "= "+cval+ ";expires= "+exp.toGMTString();
}
------解决方案--------------------
我看清楚了~
是楼主写cookie失败了~
第2次写那个=2的时候写错了,又写了个=1进去,作用域的问题吧
------解决方案--------------------
我不明白你为什么不用那个教程上的saveCookie函数呢,你自己写的这个缺少参数啊
cookie路径、cookie作用域、cookie是否加密传输,这3个参数都没有....