浅谈cookie跨域的解决方案——document.domain[通俗易懂]

浅谈cookie跨域的解决方案——document.domain[通俗易懂]cookie的名/值对中的值不允许出现分号、逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURIComponent()解码。cookie默认的有效期是浏览器会话期间,作用域是整个浏览器而不仅仅局限于窗口或标签页。若要延长cookie的有效期,可以设置max-age属性。cookie的domain和path属性:1.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

cookie的名/值对中的值不允许出现分号、逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURIComponent()解码。

cookie默认的有效期是浏览器会话期间,作用域是整个浏览器而不仅仅局限于窗口或标签页。若要延长cookie的有效期,可以设置max-age属性。


cookie的domain和path属性:

1、domain

表示cookie所在的域,默认为请求的地址,如网址为JavaScript.exam.cn/JavaScript/read.html,那么domain默认为JavaScript.exam.cn。如域A为catagory.exam.cn,域B为JavaScript.exam.cn,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.exam.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为JavaScript.test.com。

2、path

表示cookie所在的目录,默认为/,就是根目录。如在同一个服务器上有目录/JavaScript/,/JavaScript/dir1/,/JavaScript/dir2/,现设一个cookie1的path为/JavaScript/,cookie2的path为/JavaScript/dir1/,那么JavaScript下的所有页面都可以访问到cookie1,而/JavaScript/和/JavaScript/dir2/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。


默认情况下,cookie对创建它的页面和域与创建它的页面在同一目录的其他页面以及创建它的页面所在目录的子目录的其他页面可见,例如,localhost/JavaScript/write.html创建的cookie对localhost/JavaScript/read.html和localhost/JavaScript/catagory/read.html都是可见的,但对localhost/read.html不可见。

可以设置cookie的path属性,只要以path指定的路径前缀开始的同一服务器的页面均可见cookie,例如,设置path=/JavaScript,则localhost/JavaScript/catagory/write.html创建的cookie对localhost/JavaScript/read.html也是可见的;设置path=/,则cookie对localhost这台服务器上的页面均可见。


一级域名相同,只是二级域名不同的情况下,浏览器允许通过设置document.domain共享Cookie。也就是说,Cookie只能跨二级域名来访问,不能跨一级域名来访问。

catagory.exam.cn要读取JavaScript.exam.cn设置的cookie值,可以将path设置为/,domain设置为exam.cn,则JavaScript.exam.cn设置的cookie对catagory.exam.cn甚至其它所有.exam.cn的服务器都可见。


http://JavaScript.exam.cn/text.html:

<!DOCTYPE html>  
<html>  
    <head>  
    </head>  
    <body>  
        <script>  
			document.domain = 'exam.cn';  
			document.Cookie = "name=value";  
		</script>  
    </body>  
</html>

http://catagory.exam.cn/text.html:

<!DOCTYPE html>
<html>
	<head>
	</head>
	<body>
		<script>
			document.domain = 'exam.cn';  
			alert(document.cookie); //输出:name=value
		</script>
	</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157720.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • tomcat服务器宕机解决方案

    tomcat服务器宕机解决方案tomcat服务器宕机解决方案

  • 阿里云申请免费DV SSl(https证书),及详细配置运用[通俗易懂]

    阿里云申请免费DV SSl(https证书),及详细配置运用[通俗易懂]概述(大体流程):申请好免费证书后,一键推送到负载均衡,然后再给负载均衡配置443端口监听,并选择相应的证书!1、在阿里云购买证书说明:免费版的只能针对特定的一个域名(如果有多个域名,那就多买几个免费的)注意:在里面挨个挨个点乱点,这个免费的隐藏得有点深,不容易出的来(Symantec里面才有免费版的)创建证书,在【证书列表】中选择自己购买的那个2、配置证书…

  • 定积分的应用之 柱壳法求旋转体体积

    定积分的应用之 柱壳法求旋转体体积

  • C语言单链表的基本操作总结(增删改查)「建议收藏」

    C语言单链表的基本操作总结(增删改查)「建议收藏」1.链表概述  链表是一种常见的数据结构。它与常见的数组是不同的,使用数组时先要指定数组包含元素的个数,即为数组的长度,但是如果向这个数组中加入的元素超过了数组的大小时,便不能将内容全部保存。  链表这种存储方式,其元素个数是不受限定的,当进行添加元素的时候存储的个数就会随之改变。  链表一般有两种形式,有空头链表和无空头链表。  在链表中有一个头指针变量,这个指针变量保存一个地址,…

  • Redis缓存穿透、缓存雪崩问题分析

    Redis缓存穿透、缓存雪崩问题分析把redis作为缓存使用已经是司空见惯,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下:(一)缓存和数据库间数据一致性问题分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么请不要使用缓存。我们只能采取合适的策略来降低缓存和数据库间数据不一致的概率,而无法保证两…

  • 我说我不会算法,阿里把我挂了。[通俗易懂]

    我说我不会算法,阿里把我挂了。[通俗易懂]不说了,字节跳动也反手把我挂了。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号