在iframe中使⽤cookie需要注意
cookie的使⽤早已不新鲜了,但是最近在做项⽬时还是被坑了⼀把。
那么接下来让我们来看⼀下这个“坑”是个什么情况!
前提:
1.现在有两个页⾯A.html, B.html,同时,这两个页⾯中共同嵌⼊了页⾯C.html
2.在iframe中使⽤cookie
3.iframe中的页⾯并不跨域(即A、B、C为同域)
4.ie8情况下
现象:
当在A中的C页⾯储存cookie,然后在去B中的C页⾯读取这个cookie,这时会发现读取不到(偶现,不是必现)。
这⾥稍微抱怨⼀下,这种偶现的情况实在坑爹,如果是必现反倒是好查了,这个问题查了我好⼏个⼩时,最后只好去C盘下查看存cookie的⽂件(如果写cookie时没有指定过期时间是不会⽣成cookie⽂件的,只会在缓存中,浏览器⼀关这个cookie就被清除了)。
解决⽅案:
通过查看cookie⽂件,我才发现有时候写⼊的cookie路径是C页⾯的路径,有时候⼜是B页⾯的(应该是iframe嵌套的缘故导致的)。
因为cookie的路径不同,就相当于不同的cookie了,⽽在读取cookie时往往只能读到当前页⾯路径下的cookie值,所以在A中的C页⾯是⽆法读到B页⾯中的cookie的。
于是我的解决⽅案是,在写cookie时主动添加路径,避免C页⾯写cookie时⼀会写⾃⼰的路径,⼀会写B页⾯的路径。
demo如下:
$.cookie('readme', '这⾥使⽤了jq的插件', {path : '/sub/C'});cookie阻止好还是不阻止好
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论