浅谈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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • H2数据库相关介绍「建议收藏」

    H2数据库相关介绍「建议收藏」什么是H2数据库H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。H2是纯java编写的,源码大小只有1M左右。优点:速度非常快,开源,JDBCAPI嵌入式和服务器模式;内存数据库基于浏览器的Console应用…

    2022年10月12日
    0
  • 解构赋值的作用_数组解构赋值

    解构赋值的作用_数组解构赋值文章目录概念数组解构声明分别赋值解构默认值交换变量值解构函数返回的数组忽略返回值(或跳过某一项)赋值数组剩余值给一个变量嵌套数组解构字符串解构对象解构基础对象解构赋值给新变量名解构默认值赋值给新对象名的同时提供默认值同时使用数组和对象解构不完全解构赋值剩余值给一个对象嵌套对象解构(可忽略解构)注意事项小心使用已声明变量进行解构函数参数的解构赋值解构的用途交换变量的值从函数返回多个值提取JSON数据概念ES6提供了更简洁的赋值模式,从数组和对象中提取值,这被称为解构示例:[a,b]=[50,1

    2022年10月22日
    0
  • nrzi是什么编码_epc编码

    nrzi是什么编码_epc编码NRZ与NRZI编码解释RZ编码(Return-to-zeroCode),即归零编码。在 RZ 编码中,正电平代表逻辑 1,负电平代表逻辑 0,并且,每传输完一位数据,信号返回到零电平,也就是说,信号线上会出现 3 种电平:正电平、负电平、零电平:从图上就可以看出来,因为每位传输之后都要归零,所以接受者只要在信号归零后采样即可,这样就不在需要单独的时钟信号。实际上, RZ 编码就是相当于把时钟

    2022年10月30日
    0
  • ExecuteNonQuery()返回值

    ExecuteNonQuery()返回值

    2021年9月25日
    41
  • [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向

    [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向安全攻防进阶篇将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等。第一篇文章先带领大家学习什么是逆向分析,然后详细讲解逆向分析的典型应用,接着通过OllyDbg工具逆向分析经典的游戏扫雷,再通过CheatEngine工具复制内存地址获取,实现一个自动扫雷程序。基础性文章,西电UI您有所帮助~

    2022年6月19日
    28
  • python中pip 安装、升级、升级固定的包

    1、pip下载安装1.1pip下载进入https://pypi.python.org/pypi/pip,下载.tar.gz压缩包1.2Linux安装pip#tar-xzvfpip-1.5.4.tar.gz解压#cdpip-1.5.4进入解压文件#pythonsetup.pyinstall…

    2022年4月9日
    291

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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