浅谈cookie跨域的解决方案——document.domain
来源:互联网 发布:阿里云邮箱个人版注册 编辑:程序博客网 时间:2024/05/30 22:59
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>
- 浅谈cookie跨域的解决方案——document.domain
- 浅谈获取DOM跨域的解决方案——document.domain、window.name、window.postMessage
- 浅谈document.domain
- document.domain 跨域问题
- document.domain 跨域问题
- document.domain 跨域问题
- document.domain 跨域问题
- document.domain 跨域问题
- document.domain 跨域问题
- document.domain解决跨域
- JSP_004_Cookie介绍03—Cookie的domain(域)
- js设置document.domain实现跨域的注意点
- document.domain解决跨域问题
- document.domain 跨域问题【转】
- document.domain 跨域问题【转】
- document.domain解决跨域问题
- document.domain 跨域问题【转】
- document.domain 跨域问题
- centos 6.8 部署本地作为PXE服务器
- ZooKeeper 原理及其在 Hadoop 和 HBase 中的应用
- Linux系统启动过程分析(基于CentOS 6.0系统)
- 数据库SQL 优化方案
- Java中将对象加入集合,实质是加入对象的引用的复制
- 浅谈cookie跨域的解决方案——document.domain
- iOS开发- 微信支付
- Spring Boot 入门
- c++ 从文件获取输入
- POJ-1018
- 素数距离问题
- JavaScript、JQuery-数组
- 小伙的java之旅——注解
- SylixOS DNS浅析