Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cookies的基本操作方法 #18

Open
endday opened this issue May 3, 2018 · 0 comments
Open

cookies的基本操作方法 #18

endday opened this issue May 3, 2018 · 0 comments

Comments

@endday
Copy link
Owner

endday commented May 3, 2018

cookie 的属性选项

属性名 描述
name(string) 该Cookie的名称。Cookie一旦创建,名称便不可更改
value(string) 该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码
maxAge(number) 该Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为–1
secure(booblean) 该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false
path(string) 该Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”
domain(string) 可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”
comment 该Cookie的用处说明。浏览器显示Cookie信息的时候显示该说明
version(number) 该Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

赋值

document.cookie看上去就像一个属性,可以赋不同的值。但它和一般的属性不一样,改变

它的赋值并不意味着丢失原来的值,例如连续执行下面两条语句:

document.cookie="userId=828"
document.cookie="userName=hulk"

这时浏览器将维护两个cookie,分别是userId和userName,因此给document.cookie赋值更像执行类似这样的语句:

document.addCookie("userId=828")
document.addCookie("userName=hulk")

事实上,浏览器就是按照这样的方式来设置cookie的,如果要改变一个cookie的值,只需重新赋值,例如:

document.cookie="userId=929"

这样就将名为userId的cookie值设置为了929。

取值

下面介绍如何获取cookie的值。cookie的值可以由document.cookie直接获得:
var strCookie=document.cookie;
这将获得以分号隔开的多个名/值对所组成的字符串,这些名/值对包括了该域名下的所有cookie。
例如:

document.cookie="userId=828";
document.cookie="userName=hulk";
var strCookie=document.cookie;
alert(strCookie);

只能够一次获取所有的cookie值,而不能指定cookie名称来获得指定的值。

获取指定的cookie值,例如,要获取userId的值,可以这样实现:

function getCookies(cookiesName) {
    const strCookie = document.cookie
    const arrCookie = strCookie.split('; ')
    let value
    for (let i = 0; i < arrCookie.length; i++) {
        const arr = arrCookie[i].split('=')
        if (arr[0] === cookiesName) {
            value = arr[1]
            break
        }
    }
    return value
}
const userId = getCookies('userId')

设置终止日期

删除cookie

指定可访问cookie的路径

@endday endday changed the title cookies的基本操作方法 cookies的基本操作方法(未完成) May 3, 2018
@endday endday changed the title cookies的基本操作方法(未完成) cookies的基本操作方法 May 3, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant