js在浏览器中对cookie进行增删改查

简介: js在浏览器中对cookie进行增删改查

Cookie格式

<name>=<value>; <attribute>; <attribute>
eg:
id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly

属性

属性名

说明

默认值

作用域

Expires

到期时间:UTC

-

-

Max-Age

到期时间:秒 优先级高于Expires

-

-

domain

所属域名

当前域名

默认当前域名, 指定值后是当前域名和子域名

path

生效的路径

当前网址

当前路径及其子路径

HttpOnly

无法通过 JavaScript 脚本拿到

-

-

Secure

只有在加密协议 HTTPS 下生效

-

-

特殊说明:

  1. 如果不添加过期时间,cookie 在浏览器关闭时删除
  2. 两个网址只要域名相同端口相同,就可以共享 Cookie
  3. 使用document.cookie无法读取到与HTTPOnly属性的cookie
  4. 只能读取到cookie的键-值,没有办法读取属性的值

Cookie读写操作

如果本地html文件用浏览器打开页面会报错

A cookie associated with a cross-site resource at  was set without the `SameSite` attribute. 
A future release of Chrome will only deliver cookies with cross-site requests 
if they are set with `SameSite=None` and `Secure`.

可以使用Flask 搭建测试环境

# -*- coding: utf-8 -*-
from flask import Flask, send_file
app = Flask(__name__)
@app.route("/")
def get_info():
    return send_file("templates/index.html")
if __name__ == '__main__':
    app.run(debug=True)

JavaScript读写Cookie

// 创建Cookie 可以连续赋值,不会被覆盖
document.cookie="username=Tom";
document.cookie="age=12";
// 修改Cookie
document.cookie="username=Jack";
// 获取Cookie
console.log(document.cookie);
// age=12; username=Jack
// 删除  设置 expires 参数为以前的时间
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

可以自己封装函数处理cookie

例如:https://www.runoob.com/js/js-cookies.html

也可以使用插件读取

js-cookie: https://www.npmjs.com/package/js-cookie

参考

  1. https://segmentfault.com/a/1190000016372516
  2. 阮一峰 JavaScript 教程/浏览器模型/Cookie
相关文章
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
309 63
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
350 57
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
225 5
在浏览器执行js脚本的两种方式
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1791 1
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
2425 1
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
764 0
|
存储 JavaScript 前端开发
JavaScript Cookie
JavaScript Cookie
230 0
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
493 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28

热门文章

最新文章