JavaScript 操作 cookie

在Web开发中,操作cookie是一项常见的需求。虽然JavaScript本身并没有直接提供操作cookie的API,但是可以通过操作document.cookie属性来实现对cookie的操作。下面是一些基本的示例来展示如何使用JavaScript来设置、获取和删除cookie。

设置Cookie

设置一个cookie通常是在响应中通过Set-Cookie头完成的,但是在客户端的JavaScript代码中,可以利用document.cookie来模拟这个过程:

function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + value + expires + "; path=/";
}

获取Cookie

获取一个cookie的值通常需要解析document.cookie,因为它是以字符串的形式存储多个键值对,并且每个键值对之间用分号和空格隔开:

function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

删除Cookie

删除一个cookie实际上是将它的过期时间设置为一个过去的时间点,从而使其立即失效:

function deleteCookie(name) {
    setCookie(name, "", -1); // 设置过期时间为过去的时间点
}

注意事项

  • path参数是可选的,用来指定cookie适用的路径。如果省略,默认是当前页面的路径。
  • expires参数是用来设置cookie的有效期限,如果不设置,则cookie将在浏览器关闭后失效(即会话型cookie)。
  • secure属性可以用来指定只有在HTTPS连接下才能发送cookie。
  • HttpOnly属性可以防止JavaScript访问cookie,有助于减少跨站脚本攻击的风险。

以上提供的函数可以帮助你在JavaScript中更好地管理和操作cookie。然而,在实际应用中,你可能还需要考虑其他安全性和兼容性的问题。例如,不同的浏览器对cookie的处理可能略有不同,因此在生产环境中使用这些函数之前最好进行充分的测试。

Cookie 详解:https://javascript.net.cn/articles/158

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
搜神记
793 文章
4 教程
8 项目
随机推荐
JavaScript 原型链
JavaScript DOM 查找元素
Page Visibility API
Node.js 内置模块
Express 使用 method-override 处理动词覆盖
JWT 存储在 Cookie 和 Web Storage 的区别
Debian11 安装笔记4:安装常用软件
Node.js 安装第三方模块