2

JavaScript 读取Cookie的方法

 2 years ago
source link: https://blog.p2hp.com/archives/9201
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

读取Cookie

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

  1. var strCookie = document.cookie; 

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

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK