您现在的位置:首页 >> 前端 >> 内容

浅谈cookie及其跨域问题

时间:2017/3/13 9:29:00 点击:

  核心提示:浅谈cookie及其跨域问题。cookie的名/值对中的值不允许出现分号、逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURICompo...

浅谈cookie及其跨域问题。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这台服务器上的页面均可见。

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

Tags:浅谈 谈C CO OO 
作者:网络 来源:筱葭的博客