http://topic.csdn.net/u/20100520/18/dac97153-7848-4600-8378-3088b9f40f01.html?88179我使用c#和javascipt混合操作cookie,于是出现问题了,如下1,我用c#写cookie,cookie的内容写在了c:\document..\administrator\cookies\ 文件夹下
cookie的名字是“ShopCar”,内容是“A~3|B~2|F~2|#”。存储到文件中的主要内容以“1=ShopCar=A~3|B~2|F~2|#”开头,后面是有效期等字符串。用c#读取“ShopCar”的值后,是“A~3|B~2|F~2|#”。这里没有问题
2,我用javascript读取cookie。
做法是document.cookie,得到一个字符串,值是“1=ShopCar=A~3|B~2|F~2|#”。我分开字符串,将其中的“B~2”改成“B~3”,即将document.cookie="1=ShopCar=A~3|B~3|F~2|#"。这里有问题么?请高手指点!!!
3,问题突显了。
我用c#读取cookie中“ShopCar”的值,得到的是“A~3|B~2|F~2|#”
我用javascript再次读取document.cookie。得到的是
“1=ShopCar=A~3|B~3|F~2|#; 1=ShopCar=A~3|B~2|F~2|#”
4,我把1中提及的文件夹下的cookie文件删除了,c#读不到cookie了,但是javascipt读的document.cookie的值是“1=ShopCar=A~3|B~2|F~3|#”javascipt的cookie放在了哪里?怎么让它的操作结果c#也能读的到???

解决方案 »

  1.   

    存cookie时document.cookie=escape(str);取cookie时,var s=unescape(document.cookie)
      

  2.   

    不是你说的问题,我说的是c#和Javascript的cookie怎么不是一个??
    c#只能读自己存储的
    javascript可以读取c#和javascript的,但是写不到c#中去
      

  3.   

    cookie分为persistent,session,http only三种,其中只有persistent cookie会存入文件,第二种只在内存里,脚本环境可见,第三种连脚本环境都不可见。1,显然,脚本环境看到的cookie会比直接读cookie文件要多。
    2,对于persistent的cookie,windows的WinInet接收到以后,会存入cookie文件,但是脚本环境即便改变了cookie的内容,也不会引发IE去更新cookie文件。
      

  4.   

    高手,请问:如何让javascript的cookie设置成持续性persistent的??
      

  5.   

    http协议里,set-cookie指示符里,设置了cookie的expire过期时间的,便会持久存储。否则,只在内存里,为session cookie。关键是你读文件是不可能获得所有cookie的,最起码要用比如WinInet这样的Http client直接和服务器沟通,好一点可以用ie的webbrowser control来编程,通过和脚本环境的深度沟通,获取完所有cookie。针对Http only的cookie的获取,见我的文章:
    http://iamduyu.cn/?p=660