js 读写cookie有效期
时间: 2024-05-23 21:07:38 浏览: 16
JavaScript可以使用document.cookie属性来读写Cookie。通过这个属性可以对指定域名的Cookie进行读写,但是需要注意的是,浏览器对于Cookie的长度是有限制的,不同浏览器有不同的限制。
设置Cookie的有效期需要在Cookie字符串中添加expires属性。expires属性的值是一个GMT格式的日期字符串,表示Cookie过期的时间。例如,下面的代码设置了一个有效期为1小时的Cookie:
```
document.cookie = "name=value;expires=" + new Date(new Date().getTime() + 3600 * 1000).toGMTString();
```
其中,3600 * 1000表示1小时,toGMTString()方法用于将Date对象转换成GMT格式的字符串。
如果要删除一个Cookie,可以设置它的expires属性为一个过去的时间,例如:
```
document.cookie = "name=;expires=" + new Date(0).toGMTString();
```
这个代码会将名为"name"的Cookie删除。
相关问题
js 读写cookie
JavaScript可以通过document对象的cookie属性来读取和写入cookie要读取cookie,可以使用document.cookie属性。它返回一个包含所有cookie的字符串,每个cookie之间用分号和空格分隔。例如:
```javascript
var allCookies = document.cookie;
console.log(allCookies);
```
要写入cookie,可以使用document.cookie属性。cookie的格式是键值对的形式,可以通过设置document.cookie属性来添加或修改cookie。例如:
```javascript
document.cookie = "username=John Doe";
```
如果要设置cookie的过期时间,可以在键值对后面添加一个expires属性,指定一个日期。例如:
```javascript
var date = new Date();
date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000)); // 设置为7天后过期
document.cookie = "username=John Doe; expires=" + date.toUTCString();
```
如果要设置cookie的路径,可以在键值对后面添加一个path属性,指定一个路径。例如:
```javascript
document.cookie = "username=John Doe; path=/";
```
如果要删除cookie,可以将expires属性设置为一个过去的日期。例如:
```javascript
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
```
请注意,写入cookie时,如果键值对中包含特殊字符(如分号、逗号、空格等),需要进行编码。
读写cookie 封装
当涉及到读写 Cookie 时,可以使用以下方法进行封装:
1. 设置 Cookie:使用`document.cookie`属性来设置 Cookie。通过传递参数来设置 Cookie 的名称、值以及其他可选的属性(例如过期时间、路径等)。封装一个函数如下:
```javascript
function setCookie(name, value, days, path) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=" + (path || "/");
}
```
使用示例:
```javascript
setCookie("username", "John Doe", 7); // 设置一个名为 "username" 的 Cookie,有效期为7天
```
2. 获取 Cookie:使用`document.cookie`属性来获取所有的 Cookie,然后解析出指定名称的 Cookie 值。封装一个函数如下:
```javascript
function getCookie(name) {
let cookieArr = document.cookie.split("; ");
for (let i = 0; i < cookieArr.length; i++) {
let cookiePair = cookieArr[i].split("=");
if (name === cookiePair[0]) {
return decodeURIComponent(cookiePair[1]);
}
}
return null;
}
```
使用示例:
```javascript
let username = getCookie("username"); // 获取名为 "username" 的 Cookie 值
```
3. 删除 Cookie:通过设置 Cookie 的过期时间为过去的时间来删除 Cookie。封装一个函数如下:
```javascript
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}
```
使用示例:
```javascript
deleteCookie("username"); // 删除名为 "username" 的 Cookie
```
这样,你可以封装这些函数,以便在需要的时候方便地操作 Cookie。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)