博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js和.net操作Cookie遇到的问题
阅读量:5285 次
发布时间:2019-06-14

本文共 1914 字,大约阅读时间需要 6 分钟。

Cookie初探

1.我理解中的Cookie
1.1.Cookie存储位置是客户端的
1.2.Cookie存储数据,数据大小也是有限制的

2.Cookie的用法

2.1.js对Cookie的操作(网上很多我就不自己总结了)

var date = new Date();date.setTime(date.getTime() - 10000);//过期时间--这个的作用:添加(过期时间大于当前时间)和删除(过期时间小于当前时间)document.cookie = name + "=Cookie内容; expires=" + date.toGMTString();

读取Cookie

var l_varCookie=document.cookie;

2.2.C#对Cookie的操作

if (Request.Cookies["userInfo"] != null){Response.Write(Server.HtmlEncode(Request.Cookies["userInfo"].Value));}else {1.设置的Cookie方法一Response.Cookies["userInfo"].Value = "UserInfo";Response.Cookies["userInfo"].Path = "/WebSite1/CookieDemo/";}2.设置的Cookie方法二System.Web.HttpCookie newcookie = new HttpCookie("userInfo");newcookie.Value = "";newcookie.Expires = DateTime.Now.AddDays(-1);Response.AppendCookie(newcookie);Response.Redirect("default.aspx");创建带有子键的cookies:System.Web.HttpCookie newcookie=new HttpCookie("user");newcookie.Values["username"]="zxf";newcookie.Values["password"]="111";newcookie.Expires=DateTime.Now.AddDays(1);Response.AppendCookie(newcookie);有子键读取:if(Request.Cookies["user"]!=null){Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value));Response.Write(Server.HtmlEncode(Request.Cookies["user"]["password"].Value));}

看起来好简单,但是我在开发中有一个这样的需求:

1.1.母版页面加载时判断Cookie是否有值,没有的话则赋值

1.2.点击一个a标签通过js清除cookie,并跳转页面
需求很简单实用上面调查的就可以解决了,但是在做的过程中,使用js清除Cookie后,母版页面加载会判断Cookie是否有值,每次都是有值
这样问题就来了。
1.js的Cookie路径是当前页面所在的路径,而.net的Cookie的路径是当前服务器的根目录,也就是说js操作的和我母版页后台加载时处理的Cookie不是不是同一个
解决方法:js和.net操作Cookie的路径设置一致
设置Cookie的path属性,代码如下
js:
document.cookie = name + "=; expires=" + date.toGMTString() + "; path=/WebSite1/CookieDemo/";
.net:
Response.Cookies["userInfo"].Value = "UserInfo";
Response.Cookies["userInfo"].Path = "/WebSite1/CookieDemo/";
实际说了这么多就是为了解决一个很小的问题:js和.net后台共用一个Cookie。
当然还有很多不懂的地方,这个Path只是Cookie的一个属性,还有一个【域】这个属性没有研究

 DEMO:

http://files.cnblogs.com/files/WarBlog/CookieDemo.rar

 

转载于:https://www.cnblogs.com/WarBlog/p/5865183.html

你可能感兴趣的文章
HW5.29
查看>>
Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
查看>>
sqlserver查询效率
查看>>
FoxMail邮件设置
查看>>
percona-toolkit 之 【pt-online-schema-change】说明
查看>>
[模板]大数加法
查看>>
ZeroBrane Lua脚本编辑器代码自动补全
查看>>
linux下播放mp3
查看>>
POJ1611-The Suspects-并查集
查看>>
笔记--cocos2d-x 3.0 环境搭建
查看>>
关于不断刷新界面jsp+ajax
查看>>
js高阶函数应用—函数防抖和节流
查看>>
eclipse 中java/scala 混合的maven项目 工作环境篇
查看>>
顺序栈与两栈共享空间-C语言实现
查看>>
【mongo】可以用localhost启动,无法用ip启动问题的解决
查看>>
【QT】视频播放
查看>>
揭开Redis的神秘面纱
查看>>
Object流
查看>>
Windows Phone开发(8):关于导航的小技巧 转:http://blog.csdn.net/tcjiaan/article/details/7285062...
查看>>
Ajax学习笔记1之第一个Ajax应用程序
查看>>