在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'});
在iframe中使用cookie需要注意的更多相关文章
- 跨域在嵌入页面iframe中设置cookie
在IIS HTTP响应头 中 添加: 名称:p3p 值:CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"
- js中的cookie使用和vue-cookie的使用
在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaScrip ...
- 如何获取url中的参数并传递给iframe中的报表
在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数 ...
- Javascript中关于cookie的那些事儿
Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...
- Jquery取得iframe中元素的几种方法
[jquery]获取iframe中的body元素: $("iframe").contents().find("body").html(); [使用jquery操 ...
- 解析Jquery取得iframe中元素的几种方法
iframe在复合文档中经常用到,利用jquery操作iframe可以大幅提高效率,这里收集一些基本操作,需要的朋友可以参考下 DOM方法:父窗口操作IFRAME:window.frames[&q ...
- Js/Jquery获取iframe中的元素
转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...
- 在其他系统Iframe中显示SharePoint 页面
前段时间在做一个项目,要求将SharePoint 的 OWA(Office Web Apps)中的文档显示页面嵌入到另外一个OA系统中,提供给用户可以通过浏览器查看SharePoint文档的能力. 嵌 ...
- javascript 获取iframe中的dom
太扯了,一个多小时都没搞定,获取不到iframe中的dom元素. <div id="one"> this is one </div> <div> ...
随机推荐
- UVA 10474
题意:给你一组数,再给几个数问是否在一组数中. 题很简单:STL入门. 没用到STL. #include<iostream> #include<cstdio> #include ...
- python字符串基本操作
- unity panel删除drawcall失败导致的残留影像
ngui panel 被隐藏或者删除的时候调用ondisable,清空drawcall,如果这个操作是在ontriggerenter等物理操作中就会删除不掉导致留下残影 解决方式 : 讲这些操转移到协 ...
- 获取ICommand的图片
BarButtonItem item = (BarButtonItem)e.Item; System.IntPtr _Handle = (System.IntPtr)(cmd as ICommand) ...
- .net解决程序集版本冲突的方法
以log4net为例,分为两种情况 1.不同version,相同publicKeyToken 在bin里放较新版本的dll 并在web|app.config的<configuration> ...
- 彻底卸载 RAD Studio 2009/2010/XE
彻底卸载 RAD Studio 2009/2010/XE: 控制面板-->添加/删除程序中执行了卸载操作以后, 还需要做以下工作: 1. 删除以下目录(注意有些目录是隐藏的): %ALLUSER ...
- Asp.net中文件的压缩与解压
这里笔者为大家介绍在asp.net中使用文件的压缩与解压.在asp.net中使用压缩给大家带来的好处是显而易见的,首先是减小了服务器端文件存储的空间,其次下载时候下载的是压缩文件想必也会有效果吧,特别 ...
- HoloLens模拟器仿真器与文档现已向开发者们开放
HoloLens仿真器与文档现已向开发者们开放 直接上链接吧:http://mt.sohu.com/20160301/n438961462.shtml
- NPOIHelper
public class NPOIHelper { public static void WriteDataToExceel(string fileName, DataSet ds) { if (Fi ...
- 启用vim-ruby的rails complete (macvim)
macvim启用rails complete 用vim已经很久了, 一直用spf13也挺好的, 最近遇到要处理一个遗留项目, 数据库字段太多, 因此折腾了一下配置好vim的ruby-completio ...