日期:2014-05-17  浏览次数:21216 次

关于javascript写cookie的问题。
我在某个页面写了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个参数都没有....