cookie的问题,不解,高手进!!!分在文中的另一个帖子中。120分

天开之想 2010-05-20 07:26:24
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#也能读的到???
...全文
184 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
meible2007 2010-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 falizixun2 的回复:]
看得我头晕,帮顶!
[/Quote]
me too
eduyu 2010-05-21
  • 打赏
  • 举报
回复
http协议里,set-cookie指示符里,设置了cookie的expire过期时间的,便会持久存储。否则,只在内存里,为session cookie。

关键是你读文件是不可能获得所有cookie的,最起码要用比如WinInet这样的Http client直接和服务器沟通,好一点可以用ie的webbrowser control来编程,通过和脚本环境的深度沟通,获取完所有cookie。针对Http only的cookie的获取,见我的文章:
http://iamduyu.cn/?p=660
天开之想 2010-05-21
  • 打赏
  • 举报
回复
高手,请问:如何让javascript的cookie设置成持续性persistent的??

[Quote=引用 5 楼 eduyu 的回复:]

cookie分为persistent,session,http only三种,其中只有persistent cookie会存入文件,第二种只在内存里,脚本环境可见,第三种连脚本环境都不可见。

1,显然,脚本环境看到的cookie会比直接读cookie文件要多。
2,对于persistent的cookie,windows的WinInet接收到以后,会存入cookie文件,但是脚本环境即便改……
[/Quote]
eduyu 2010-05-20
  • 打赏
  • 举报
回复
cookie分为persistent,session,http only三种,其中只有persistent cookie会存入文件,第二种只在内存里,脚本环境可见,第三种连脚本环境都不可见。

1,显然,脚本环境看到的cookie会比直接读cookie文件要多。
2,对于persistent的cookie,windows的WinInet接收到以后,会存入cookie文件,但是脚本环境即便改变了cookie的内容,也不会引发IE去更新cookie文件。
sohighthesky 2010-05-20
  • 打赏
  • 举报
回复
我说的第3点
天开之想 2010-05-20
  • 打赏
  • 举报
回复
不是你说的问题,我说的是c#和Javascript的cookie怎么不是一个??
c#只能读自己存储的
javascript可以读取c#和javascript的,但是写不到c#中去



[Quote=引用 2 楼 sohighthesky 的回复:]
JScript code
存cookie时document.cookie=escape(str);

取cookie时,var s=unescape(document.cookie)
[/Quote]

sohighthesky 2010-05-20
  • 打赏
  • 举报
回复
存cookie时document.cookie=escape(str);

取cookie时,var s=unescape(document.cookie)
kaifadi 2010-05-20
  • 打赏
  • 举报
回复
看得我头晕,帮顶!
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机科学领域,编译原理是研究如何将编程语言转化为机器可执行代码的理论基础。其,三地址代码(Three-Address Code,TAC)作为一种间表示形式,在编译器设计经常被使用,尤其是在生成目标代码的阶段。本文将深入探讨三地址代码的概念、生成器的工作原理及其在编译过程的作用。 三地址代码是一种简单的低级抽象语法树(AST)表示,每条指令涉及三个操作数,通常包括两个源操作数和一个目的操作数。这种格式简化了代码优化和目标代码生成的复杂性。例如,一个简单的算术表达式“x = y + z”在三地址代码可能表示为: 在这个例子,“t1”是一个临时变量,存储了“y + z”的结果,然后这个结果被赋值给“x”。 生成三地址代码的过程通常发生在编译器的间阶段,即语法析之后,语义析之前。这个阶段称为“代码生成”或“间代码生成”。编译器通过词法析器处理源代码,将其转化为标记流;接着,语法析器根据上下文无关文法将标记流解析成抽象语法树。三地址代码生成器就是在这个阶段介入,它遍历AST,为每个节点生成对应的三地址指令。 在Turbo C3.0这样的编译器环境下,开发者可以实现自己的三地址代码生成器。虽然Turbo C3.0是一款较老的编译器,但其C语言编译器设计原理依然适用于现代编译器开发。开发过程,我们需要考虑如下关键点: 符号表管理:符号表记录了程序所有标识符的类型、作用域和关联地址,对于生成三地址代码至关重要,因为它提供了关于操作数的类型信息。 数据类型转换:编译器必须处理不同数据类型的运算,确保它们在三地址代码正确表示。例如,整型与浮点型之间的转换需要特别处理。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧