文档介绍:js跨域解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
一、问题描述
在页面渲染时需要动态获取iframe子页面的高度,然后重新设置iframe高度,达到自适应的目   
 
   
js跨域解决方案
 
   
 
 
 
 
 
 
 
     
 
 
 
 
 
一、问题描述
在页面渲染时需要动态获取iframe子页面的高度,然后重新设置iframe高度,达到自适应的目的,但是由于iframe子页面中也涉及到访问其他系统的页面,这就使得页面渲染时无法获取子页面高度,这里涉及到跨域访问子页面问题。
二、什么是跨域
我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题.
跨域问题是由于javascript语言安全限制中的同源策略造成的.
简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合.
例如:
URL
说明
是否允许通信
同一域名下
允许
同一域名下不同文件夹
允许
:8000/
同一域名,不同端口
不允许
同一域名,不同协议
不允许
域名和域名对应ip
不允许
主域相同,子域不同
不允许
同一域名,不同二级域名(同上)
不允许(cookie这种情况下也不允许访问)
不同域名
不允许
三、解决方案
1、
,,也就是两个页面必须属于一个基础域(,),使用同一协议(例如都是 http)和同一端口(例如都是80),,就可以实现父页面调用子页面的函数。网上有很多例子,很容易找到,不过该解决方案存在一些问题:
a 安全性,当一个站点()被攻击后,另一个站点()会引起安全漏洞
b如果一个页面中引入多个iframe,要想能够操作所有iframe,必须都得设置相同domain。这样会导致很多动态创建iframe的插件无法使用,比如说富文本编辑插件。
2、基于script标签实现跨域
scri