document.cookie

这篇具有很好参考价值的文章主要介绍了document.cookie。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Cookie 是一个请求首部,其中含有先前由服务器通过 Set-Cookie 首部投放并存储到客户端的 HTTP cookies。

1. document.cookie

通过 document.cookie 可以获取与设置 cookie 。

2. 获取 cookie

document.cookie

通过 document.cookie 获取到的 cookie 由 cookie 的名称和值组成,由等号=分隔,并且可以有多条,每条 cookie 之间用分号 ‘;’ 分隔。

3. 设置cookie

var cookie = 'cookie名称=cookie值';

document.cookie = cookie;

设置 cookie 采用键值对的形式。

对应的就是 cookie的名称 和 cookie值 。

每次只能设置一条 cookie ,但可以同时设置这条 cookie的属性 。

如果需要设置多条 cookie ,则再次给 document.cookie 赋一个新值即可,但如果是相同名称的 cookie ,值就会被覆盖.

4. 设置 cookie 属性

设置 cookie 的同时可以设置这条 cookie 的属性。

document.cookie = '名称=值; 属性1=属性值1; 属性2=属性值2';

看起来是可以设置多条 cookie 一样,其实只有第一对值才是 cookie 的值,后面跟的都是这条 cookie 的属性。

可以跟随的属性有:

  • path cookie 生效的路径
  • domain cookie 生效的域名
  • max-age 过期时间,单位是秒
  • expires 过期时间,为一个 UTC 时间
  • secure 是否只能通过 https 来传递这条 cookie

这些属性具体作用可以参考 cookie 相关的内容。

设置完属性可以通过开发者工具查看。

5. 注意点

由于设置 cookie 是具有一定格式的,所以不能有字符来干扰这个格式。

var cookie = 'code=var a = 1; var b = 2;';

document.cookie = cookie;

这种情况下,cookie 就不符合预期了,被切断。

cookie 中不应该含有空格、分号、逗号这些符号。

借助 encodeURIComponent 方法,对 cookie 的值进行编码就可以避免这类问题。

var cookie = 'code=' + encodeURIComponent('var a = 1; var b = 2;');

document.cookie = cookie;

后续需要使用到这一条 cookie 的地方,再做一次解码操作即可。

注意:对字符串编码还可以使用 escape 方法,但已经从标准中移除,目前浏览器虽然还支持这个方法,但无法保证永远会保留这个方法,最好避免使用 escape 方法。

6. 小结

随着前端存储方案的增加,前端程序员访问 document.cookie 相对曾经减少了很多。

给 document.cookie 赋值可以增加一条 cookie,同时通过 ; 相隔,来设置这条 cookie 的属性。

当设置的 cookie 带有特殊字符的时候,如 ; 或者 =,应采用 encodeURIComponent 对内容编码,建议所有的 cookie 都进行编码。

 7.  实战应用

设置cookie的方法封装:

function setCookie(cname, cvalue, exdays) {
	let d = new Date()
	d.setTime(d.getTime() + (exdays = '24*60*60*1000'))
	let expires = 'expires=' + d.toGMTString()
	document.cookie = cname + '=' + cvalue + '; ' + expires
}

开发环境模拟设置cookie:文章来源地址https://www.toymoban.com/news/detail-495890.html

	async beforeCreate() {
		// 仿真环境 取出配置cookie模拟登陆
		if (process.env.VUE_APP_NODE_ENV == 'development') {
			// const cookieArr = process.env.VUE_APP_DEV_COOKIE.split('; ');
			const devCookie = window.localStorage.getItem('wbCookie')
			if (devCookie) {
				const cookieArr = devCookie.split('; ')
				for (let j = 0; j < cookieArr.length; j++) {
					const ckObj = cookieArr[j].split('=')
					setCookie(ckObj[0], ckObj[1])
				}
			}
		} else {
			// 服务器环境打印cookie
			console.log('wbCookie--------------', document.cookie)
		}
    }

到了这里,关于document.cookie的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Angular:跨域请求携带 cookie

    1. 新建文件夹 http-interceptors 2. 新建拦截器 common.interceptor.ts 3. 用一个数组汇总起来,统一引入: index.ts (后续需要添加拦截器,只需加入到该数组即可) 4. 引入拦截器使用: service.module.ts

    2024年01月23日
    浏览(55)
  • 前端为什么发请求没有携带cookie?

    在前端发送请求时,如果想要携带 cookie,通常只能携带存储在与请求域名相同路径的 cookie。这是由浏览器的同源策略所决定的。 同源策略要求请求的域名、协议和端口都必须一致,否则浏览器会限制跨域请求的权限。当浏览器发送跨域请求时,默认情况下不会自动携带 co

    2024年02月06日
    浏览(95)
  • flutter开发实战-请求dio设置Cookie

    flutter开发实战-请求dio设置Cookie 在最近开发中碰到了需要websocket长链接收到响应的auth,在之后的请求中需要将其设置为cookie中。 如Cookie:auth=DHSfQQSAXf89xZqJTLdEDVI2hwzc7p2lUmSNNdUSlgW2MyfQIN+pYr7jUbkX/; 设置cookie用到了dio_cookie_manager组件 在pubspec.yaml引入dio_cookie_manager 2.1 使用CookieJar Cookie

    2024年02月15日
    浏览(60)
  • Jmeter请求之cookie、token处理方式

    一、cookie的处理方式 第一种方法,直接添加HTTPCookie管理器,移动到线程组最上面 第二种方法:有的时候Cookie会变,我们就需要,先使用正则表达式提取器获取到cookie(JSESSIONID),再在需要Cookie的接口下添加HTTPCookie管理器(填写名称、值、域、路径)即可 第一种方法 添加:

    2023年04月16日
    浏览(37)
  • Flutter dio Http请求之Cookie管理

    在应用开发过程中,我们进行Http通讯时会使用 Cookie 进行验证,今天我们就着重讲解Flutter 网络请求插件 dio 的 cookie 使用。 首先,我们要进行插件引用 这里为什么要使用 path_provider 这个插件呢,下面在 cookie 的储存时会做介绍。 引用完,我们执行以下命令 dio 的使用网上有很

    2024年02月20日
    浏览(38)
  • 网络请求中,token和cookie有什么区别?

    cookie用于登录验证,存储用户标识(如userID) session在服务端,存储用户详细信息,和cookie信息一一对应 cookie+session是常见的登录验证解决方案 1.1cookie的格式是什么样子? Cookie的格式一般是一个字符串,由一些键值对组成,键值对之间使用分号加空格(\\\"; \\\")分隔,每个键值对

    2023年04月13日
    浏览(34)
  • 爬虫之Cookie获取:利用浏览器模拟一个cookie出来、面对反爬虫、加密的cookie的应对方法

    在爬虫或模拟请求时,特别是获取验证码的时候,反爬虫的网站的cookie或定期失效,复制出来使用是不行的 为了应对这种方式,我们可能就需要像浏览器打开网站一样,取得它信任的cookie selenium就是一个很好的手段 一、什么是selenium Selenium最初是一个自动化测试工具,Selen

    2024年01月16日
    浏览(46)
  • 关于Postman通过cookie请求接口的注意事项

    问题: 没有cookie信息时,直接用Postman访问接口会报401错误:   解决方案: 在浏览器上方获取cookie信息,填入到postman中。 一、首先点击浏览器上方地址栏旁边找到cookie: 二、然后找到对应地址的jwt信息,将里面的几个value给拷贝出来: 三、在Postman上添加cookie信息: 点击

    2024年02月11日
    浏览(47)
  • 浏览器对跨域请求携带Cookie的方法

    企业开发时会分开发环境、测试环境以及生产环境,但是有的企业开发只有真正发布到线上的生产环境的流程才会严格配置,有的项目开发环境或者测试环境中,前后端配置没有特别严格要求,就导致前端请求发送时返回错误信息。比如项目发送了一个跨域请求,该请求需要

    2024年02月16日
    浏览(51)
  • C# 获取Http请求服务器响应的cookie

    一、C#服务器端响应存储cookie   二、C#发送Http请求,获取响应cookie 使用: CookieContainer  打印结果:   更多:

    2024年02月02日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包