js与cookie的点点滴滴

页面导航:首页 > 网络编程 > JavaScript > js与cookie的点点滴滴

js与cookie的点点滴滴

来源: 作者: 时间:2016-02-02 09:58 【

在做高校云平台成绩系统的时候,利用js设置cookie,再在后台获取cookie的过程中有一些小小的插曲。 1 Cookie的设置 ---------setCookie ;path= ;加上此句话便可以访问整个目录的了function setC

  在做高校云平台成绩系统的时候,利用js设置cookie,再在后台获取cookie的过程中有一些小小的插曲。

 1. Cookie的设置

//---------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=/;

}

  此时进行相关的cookie设置,我们知道页面的重定向后Request请求时无法在新的页面中进行获取的,也就是重定向的页面是取不到之前的Request中的数据。但是cookie是可以被共享的。

//为了跳转页面能够拿到当前的值,故而用cookie进行保存
    setCookie(temporaryClassId, temporaryClassId);
    setCookie(teacherId, teacherId);
    setCookie(type, type);
    setCookie(year, year);

 2. 解析上述的设置中的参数

  当上面的cookie设置完毕之后,发现在后台取的时候发生了乱码

 

//获取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);

 

  Ø escape

 

   js利用escape对数据进行加密,但是数字是不加密的,对于汉字那么出现的就是乱码,需要解密,HttpUtility.UrlDecode就是解密使用的,当然也是可以利用un escape函数实现解密操作的。

  Ø path=/

   在用JS存取Cookie的时候,发现在不同的目录下,调用同一个js方法来存储Cookie,到别的目录取不出或取出的值是不对的,原因可能是存储的路径不对或者是没有指定,导致的结果是在不同的目录进行存储,就会出现不同的结果,为了统一我们可以将路径进行指定,path=/,path就是指定了相应的路径,/就是根目录,也就是这个目录下的所有的页面都是可以取到cookie的值的。

  Ø name和value

   cookie是以键值对的形式进行存储的,设置的时候我们需要设置key同样需要设置value,取值的时候,我们可以根据cookie的name获取到cookie,进而根据其value属性得到其值。

 3. 小结

  学习的时候就会发现,看似很小的东西,其中蕴含的东西是那么的多,所有知识都是宝藏,只要挖掘,潜力无限。


 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<