温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

cookie 的使用

发布时间:2020-06-21 08:35:58 来源:网络 阅读:499 作者:我是谁VS梦 栏目:web开发

该文章来源于网页整理.

 

1.
";expires="之前的字符串你可以随便写,但是";expires="必须遵循这个写法,尤其是这个分号不能少,不然浏览器是认不出你的expires(过期时间),而把它当成cookie内容的一部分。

设置标识符的时候,我建议尽量不要用分号当做分隔符。“吞掉了”,造成这个现象的原因是,浏览器在保存cookie的时候,在读到分号之后,就认为cookie的内容结束了。


要在一条cookie中设置多个值,就需要像代码2这样用标示符(不要分号)进行分割。然后在读取的时候,也根据标示符进行逐个读取。


设置多个cookie,这个时候,你再去解析cookie的时候,就要用分号作为分隔符了。

我们尽量不要直接在Cookie中 保存一些重要的或者敏感的内容。如果我们确实需要使用Cookie保存一些重要的内容,但又不希望被他人看懂, 我们可以使用一些加密的方法来保护这些内容。

 

chrome不支持本地cookie,而需要用online-cookie

代码来自w3school的js操作cookie教程,经本人整理和个性化。

<!-- 记住密码 -->
 <html>
 <head>
 <script type="text/javascript">

 function getCookie(c_name)      //根据分隔符每个变量的值
 {
     if (document.cookie.length > 0) {
         c_start = document.cookie.indexOf(c_name + "=")
         if (c_start != -1) { 
             c_start = c_start + c_name.length + 1;
             c_end = document.cookie.indexOf("^",c_start);
             if (c_end==-1)
                 c_end=document.cookie.length;
             return unescape(document.cookie.substring(c_start,c_end));
     } 
   }
     return "";
 }

 function setCookie(c_name, n_value, p_name, p_value, expiredays)        //设置cookie
 {
     var exdate = new Date();
     exdate.setDate(exdate.getDate() + expiredays);
     document.cookie = c_name + "=" + escape(n_value) + "^" + p_name + "=" + escape(p_value) + ((expiredays == null) ? "" : "^;expires=" + exdate.toGMTString());
     console.log(document.cookie)
 }

 function checkCookie()      //检测cookie是否存在,如果存在则直接读取,否则创建新的cookie
 {
     alert(document.cookie)
     var username = getCookie('username');
     var password = getCookie('password');
     if (username != null && username != "" && password != null && password != "") {
         alert('Your name: ' + username + '\n' + 'Your password: ' + password);
     }
     else {
         username = prompt('Please enter your name:',"");
         password = prompt('Please enter your name:',"");
         if (username != null && username != "" && password != null && password != "")
         {
             setCookie('username', username, 'password', password, 365);
         }
     }
     alert(document.cookie)
 }

 function cleanCookie (c_name, p_name) {     //使cookie过期
     document.cookie = c_name + "=" + ";" + p_name + "=" + ";expires=Thu, 01-Jan-70 00:00:01 GMT";
 }
 </script>
 </head>

 <body onLoad="checkCookie()">
 </body>
 </html>


2.

jquery.cookie 使用方法一个轻量级的 cookie 插件,可以读取、写入、删除 cookie。 
jquery.cookie.js 的配置首先包含 jQuery 的库文件,在后面包含 jquery.cookie.js 的库文件。 

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="js/jquery.cookie.js"></script> 


使用方法新添加一个会话 cookie:
 $.cookie('the_cookie', 'the_value'); 
注:当没有指明 cookie 有效时间时,所创建的 cookie 有效期默认到用户关闭浏览器为止,所以被称为 “会话 cookie(session cookie)”。

创建一个 cookie 并设置有效时间为 7 天: 
$.cookie('the_cookie', 'the_value', { expires: 7 }); 
注: 当指明了 cookie 有效时间时, 所创建的 cookie 被称为 “持久 cookie (persistent cookie)。 ” 

创建一个 cookie 并设置 cookie 的有效路径:
 $.cookie('the_cookie', 'the_value', { expires: 7, path: '/' }); 
注:在默认情况下,只有设置 cookie 的网页才能读取该 cookie。如果想让一个页面读取另一个页面设 置的 cookie,必须设置 cookie 的路径。cookie 的路径用于设置能够读取 cookie 的顶级目录。将这 个路径设置为网站的根目录, 可以让所有网页都能互相读取 cookie (一般不要这样设置, 防止出现冲突)。


读取 cookie:
$.cookie('the_cookie'); 
// cookie 存在 => 'the_value' $.cookie('not_existing'); 
// cookie 不存在 => null 删除 cookie,通过传递 null 作为 cookie 的值即可: $.cookie('the_cookie', null); 

部分参数解释:
domain: 'example.com'   默认值:创建 cookie 的网页所拥有的域名。
secure: true  默认值:false。
        如果为 true,cookie 的传输需要使用安全协议(HTTPS)。 raw: true 默认值:false。 默认情况下,读取和写入 cookie 的时候自动进行编码和解码(使用 encodeURIComponent 编码,             decodeURIComponent 解码)。要关闭这个功能设置 raw: true 即可。 

 


 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI