前端知识学习

读取Cookie

可以通过document.cookie直接读取cookie的内容:

var strCookie = document.cookie; 

此时,strCookie是一个由该域名下的所有cookie的名/值对所组成的字符串,名/值对间以“分号加空格”分隔。为了方便查看,可以使用split()方法将cookie中的名/值对解析出来,得到一个cookie的列表。然后,再使用相应的解码方式,把cookie的值还原出来。

cookie值的解码方式,取决于之前存储cookie时所采用的编码方式。比如使用encodeComponent()函数对值进行编码,则要使用decodeComponent()函数对其值进行解码。代码如下:

function getCookie(name) {
 var cookies = document.cookie;
 var list = cookies.split("; ");     // 解析出名/值对列表
      
 for(var i = 0; i < list.length; i++) {
 var arr = list[i].split("=");   // 解析出名和值
 if(arr[0] == name)
 return decodeURIComponent(arr[1]);   // 对cookie值解码
 } 
 return "";
}

说明:

许多浏览器(如Google Chrome)不支持在本地文件中直接访问cookie,所以,要确保是在Web服务器中打开文件,否则可能无法进行cookie的读写操作。虽然IE允许对本地文件的cookie的读写操作,但cookie始终是会话级别的,即使通过max-age属性延长了cookie的生存期。

从客户端读取cookie时,name与value之外的其他属性都是不可读的,也不会被提交,浏览器只会提交name与value属性。