使用JavaScript删除ASP.NET生成的HttpCookie

在做一个asp.net(vb.net)的项目,要求postback后弹出对话框,我使用hidden保存提示信息,在window.onload事件进行处理;可是,跳转到其它页面后,再按“后退”按钮后,再次出现弹出对话框;为了解决这个问题,我想使用cookie控制信息是否显示,可问题接踵而致;

使用HttpCookie生成的cookie,使用javascript不能删除,MSDN中说“
ASP.NET 代码使用内部的 Cookies 对象来创建 Cookie 并将其添加到 Cookie 集合中。当将 Web 页传递到客户端时,服务器使用 Set-Cookie 头来发送整个 Cookie 集合。”根据Set-Cookie搜索,没有找到合适的资料;

没办法了,想到了www.asp.net,找了几次关键字之后,使用“
cookie document.cookie”找到了我想要的结果,这个帖子的标题是“I need JavaScript help to remove a cookie built in a .NET custom control! ”;

其实问题很简单,要设置分别设置path和expires,就可以了;在javascript中,删除cookie就是设置超时时间为过去的时间,为了删除asp.net生成的cookie,只要增加一个“
path=/”就行了,简单吧!难者不会,会者不难,呵呵;

找资料的过程,倒是发现了几个不错的英文站点,一并都贴在这儿吧,留个纪念:
http://techpatterns.com/downloads/javascript_cookies.php
http://www.javascripter.net/faq/index.htm
http://www.cookiecentral.com/faq/

http://www.howtocreate.co.uk/tutorials/javascript/cookies
这个链接对cookie操作做了比较详细的说明,结尾处还提供了操作cookie比较简单的方法:

The simple way to do this is to use the split method, to split on the cookie separation value '; ' (including the space). This will return an array of strings, each of which represents a name=value pair. You can then use a 'for' loop to cycle through all the array cells, splitting each of them on the '=' string. This returns an array containing one or two cells. The first will be the cookie name, and the second (if it exists) will be the cookie value.

msdn中的例子就是这样写的,经过我的测试,这样实现最安全;使用手动解析字符串的方法,可能会存在错误解析情况,原因就不用我说了吧;

おやすみなさい。

posted on 2006-03-09 01:27  gucs  阅读(1703)  评论(1编辑  收藏  举报

导航