IE中iframe跨域访问
来源:互联网 发布:mac最好的cd刻录软件 编辑:程序博客网 时间:2024/06/07 00:57
1 什么叫跨域?
指在A系统(第一方)中通过URL直接调用B系统(第三方),并且两个系统分别部署在不同的域内,简单的理解就是访问这两个系统需要不同的IP。后面说明也已A系统、B系统为例。
2 跨域会引发什么问题?
在IE中,A系统中的iframe或者frame跨域访问了B系统一个资源时,IE浏览器默认设置是禁用第三方Cookie的,这就导致向B系统发送请求时丢失了JSESSIONID,从而B系统服务器中就无法得到session对象,就会引发一系列问题。关于Cookie和session的关系,可以看前一篇文章Session深度解析,这里不再赘述。
IE中如此处理可能也是出于安全考虑,经测试,在Chrome、FireFox中默认是允许第三方Cookie的,也就不会存在跨域引发的问题。这种跨域的情况通常出现在多个系统间互相嵌入某些功能。
3 如何解决?
解决方案可以分两个方面,一种是客户端(需要访问A系统的浏览器)处理,另一种是服务端(B系统)处理。
3.1 浏览器
3.1.1 放弃IE
那是不可能的。
3.1.2 允许第三方Cookie
工具 - Internet选项 - 隐私 - 高级 - 勾选替代自动cookie处理 - 确定。
3.1.3 设置可信站点
访问A系统前,将B系统的IP添加到可信站点中,这样设置能比接受第三方Cookie安全些。
工具 - Internet选项 - 安全 - 受信任的站点 - 站点 - 添加 - 确定。
3.2 服务器
3.2.1 可以被集成的模块不需要Session
局限性太大。
3.2.2 P3P协议
在B系统中允许被跨域访问的功能模块中加入P3P响应头,response.setHeader("P3P","CP=CAOPSA OUR");,记住是B系统中加,不是A系统。
关于P3P的介绍可以看这篇文章http://www.cnblogs.com/_franky/archive/2011/03/16/1985954.html。
(完)
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/13747943
- IE中iframe跨域访问
- IE中iframe跨域访问
- IE浏览器跨域访问iframe 中 Cookie/Session丢失解决方案
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
- 解决IE浏览器中Iframe跨域访问不能读写cookie问题
- 解决IE浏览器中Iframe跨域访问不能读写cookie问题
- IE中iframe的跨域问题
- 跨域访问Iframe自适应高度(兼容Firfox,IE)
- IE下访问iframe中页面出现SCRIPT5: 拒绝访问
- iframe中页面跨域访问javascript
- IE中iframe跨域丢失Session问题 p3p
- IE中iframe跨域丢失Session问题
- IE中iframe跨域丢失Session问题 p3p
- IE中iframe跨域丢失Session问题(续 p3p)
- iframe跨域访问
- iframe跨域访问
- iframe跨域访问
- iframe跨域访问
- leetcode Divide Two Integers
- 通用链表代码1
- 贪吃蛇&&俄罗斯方块
- 通用链表代码2
- 二叉树
- IE中iframe跨域访问
- 红黑树
- redis数据类型之set
- 我是程序员
- Centos 6.2 开启 VNC远程桌面
- 认识DOM
- 十二、C语言文件操作简介
- nyoj 19 擅长排列的小明
- 基于海量数据的外部排序java实现(快速+归并)