前端对cookie的使用

news/2024/5/18 14:44:26 标签: cookie, javascript

注意:要使用cookie,页面必须在服务器中运行,直接双击打开页面无法使用cookie

           在进行微信公众号页面开发时,由于localStorage退出微信无法自动清除数据,而sessionStorage每次关闭页面就会清除数据。

           既想要退出微信可以清除数据,而关闭页面又仍有留有登录信息时,我们可以选择把token存储在cookie中。

 

cookie相关代码如下所示:

javascript">//设置自定义过期时间cookie
function setCookie(name,value,time){
    var msec = getMsec(time); //获取毫秒
    var exp = new Date();
    exp.setTime(exp.getTime() + msec*1);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString() + ";path=/";
}

//将字符串时间转换为毫秒,1秒=1000毫秒
function getMsec(str){
    var timeNum=str.substring(0,str.length-1)*1; //时间数量
    var timeStr=str.substring(str.length-1,str.length); //时间单位后缀,如h表示小时
    if (timeStr=="s"){ //20s表示20秒
        return timeNum*1000;}
    else if (timeStr=="h"){ //12h表示12小时
        return timeNum*60*60*1000;}
    else if (timeStr=="d"){
        return timeNum*24*60*60*1000;} //30d表示30天
}

//读取cookies
function getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); //正则匹配
    if(arr=document.cookie.match(reg)){
        return unescape(arr[2]);
    }
    else{
        return null;
    }
}

//删除cookies
function delCookie(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null){
        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/"
    }
}

 

 其中的要点为:

1.cookie存在document.cookie中。

2.删除cookie则设置cookie的过期时间为当前时间-1。

3.设置cookie时需要对value进行编码,即使用escape函数,取出时需要进行解码,即使用unescape函数。

注:escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。


http://www.niftyadmin.cn/n/776164.html

相关文章

看懂cookie,及与localStorage与sessionStorage的区别

前言: cookie本身并不是用来做服务器存储的。但在 localStorage 出现之前,cookie被滥用当做了存储工具,什么数据都放在cookie中,即使这些数据只在页面中使用、而不需要随请求传送到服务端(当然cookie也做了一些限制&a…

JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生。   一、event.stopPropagation()   阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时候,如果点击一个连接&#xff0…

vue 事件修饰符(阻止默认行为和事件冒泡)

<!-- 停止冒泡 --> <button click.stop"doThis"></button> <!-- 阻止默认行为 --> <button click.prevent"doThis"></button> <!-- 阻止默认行为&#xff0c;没有表达式 --> <form submit.prevent></f…

Uncaught SyntaxError: Unexpected token u in JSON at position 0

这是因为某个地方用了JSON.parse&#xff0c;但是传入的参数不是一个合格的json字符串&#xff0c;也就是说后台可能返回了空或者undefined。 解决&#xff1a;搜索一下parse&#xff0c;解析前先判断一下parse里即将传入的内容

封装JS判断各种浏览器内核

function(){var u navigator.userAgent, app navigator.appVersion;return {trident: u.indexOf(Trident) > -1, //IE内核presto: u.indexOf(Presto) > -1, //opera内核webKit: u.indexOf(AppleWebKit) > -1, //苹果、谷歌内核gecko: u.indexOf(Gecko) > -1 &…

Cannot read property ‘resetFields‘ of undefined

可以发现&#xff0c;只要显示过一次dialog&#xff0c;后面就不会报错了。所以我可以确定是因为代码量过大&#xff0c;对应的对象来不及生成&#xff0c;从而导致了读取了空对象。 解决办法&#xff1a; resetForm(formName) {if (this.$refs[formName]!undefined) {this.$…

vue 日期格式化-将时间2020-11-10T12:01:50.942转换成2020-11-10 12:01

返回数据&#xff1a; 页面效果&#xff1a; 代码如下&#xff1a; dateFormat (Tue Mar 06 2012 00:00:00 GMT0800, yyyy-MM-dd);//示例 function dateFormat (time, format) {var t new Date(time)var tf function (i) {return (i < 10 ? 0 : ) i}return format.repl…

idea官网打不开的原因

1.之前安装过idea并且在使用过程中修改了hots文件 解决: a.进入Win或mac系统的hosts文件所在位置,一般都是这个地址:C:\Windows\System32\Drivers\etc (ps:如果你打开了后缀名显示,就去打开没有后缀名的文件 b.注释0.0.0.0 account.jebrains.com和0.0.0.0 www.jetbrains.com (p…