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

举报
彭世瑜 发表于 2021/08/13 22:44:54 2021/08/13
【摘要】 Cookie格式 <name>=<value>; <attribute>; <attribute> eg: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly 1234 属性 属性名说明默认值作用域Expires到期时间:UTC--Ma...

Cookie格式

<name>=<value>; <attribute>; <attribute>

eg:
id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly

  
 
  • 1
  • 2
  • 3
  • 4

属性

属性名 说明 默认值 作用域
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`.

  
 
  • 1
  • 2
  • 3

可以使用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)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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";


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

可以自己封装函数处理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

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/102935023

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。