• 在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'});

  • 相关阅读:
    数组和字符串的一些常用方法
    函数记忆
    实现一个clone函数,对javascript中的5种数据类型进行值复制
    visual studio 2010问题修复
    url模块、path模块、querystring模块
    静态资源文件使用
    路由表机制
    解决Node.js服务器启动后在浏览器访问时中文显示乱码
    Node.js 初步了解
    Node.js 简介与安装
  • 原文地址:https://www.cnblogs.com/coolle/p/5951987.html
Copyright © 2020-2023  润新知