标签:
在做高校云平台成绩系统的时候,利用js设置cookie,再在后台获取cookie的过程中有一些小小的插曲。
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>//---------setCookie ;path=/";加上此句话便可以访问整个目录的了 function setCookie(name, value) { //cookie的相关设置以及超时时间的设计 var days = 0.03; var exp = new Date(); exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/"; } </strong></span>
此时进行相关的cookie设置,我们知道页面的重定向后Request请求时无法在新的页面中进行获取的,也就是重定向的页面是取不到之前的Request中的数据。但是cookie是可以被共享的。
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>//为了跳转页面能够拿到当前的值,故而用cookie进行保存 setCookie("temporaryClassId", temporaryClassId); setCookie("teacherId", teacherId); setCookie("type", type); setCookie("year", year); </strong></span>
当上面的cookie设置完毕之后,发现在后台取的时候发生了乱码
<span style="font-family:Microsoft YaHei;font-size:14px;"><strong>//获取cookie的值 //根据参数获取班级id HttpCookie cookieId = System.Web.HttpContext.Current.Request.Cookies.Get("year"); //得到的是乱码 //string yearId = cookieId.Value; //利用cookie进行数据的保存,这样可以便于即使跨不同的方法也是可以得到的, //js利用escape对数据进行加密,但是数字是不加密的,对于汉字那么出现的就是乱码,需要解密 //HttpUtility.UrlDecode就是解密使用的,获取到学年 string yearId = HttpUtility.UrlDecode(cookieId.Value);</strong></span>
js利用escape对数据进行加密,但是数字是不加密的,对于汉字那么出现的就是乱码,需要解密,HttpUtility.UrlDecode就是解密使用的,当然也是可以利用un escape函数实现解密操作的。
在用JS存取Cookie的时候,发现在不同的目录下,调用同一个js方法来存储Cookie,到别的目录取不出或取出的值是不对的,原因可能是存储的路径不对或者是没有指定,导致的结果是在不同的目录进行存储,就会出现不同的结果,为了统一我们可以将路径进行指定,path=/,path就是指定了相应的路径,/就是根目录,也就是这个目录下的所有的页面都是可以取到cookie的值的。
cookie是以键值对的形式进行存储的,设置的时候我们需要设置key同样需要设置value,取值的时候,我们可以根据cookie的name获取到cookie,进而根据其value属性得到其值。
学习的时候就会发现,看似很小的东西,其中蕴含的东西是那么的多,所有知识都是宝藏,只要挖掘,潜力无限。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u010955843/article/details/46683359