跨域访问iframe问题

代码主页面是a.html<iframe id="frame_content" src="http://www.aaa.com/service" class="auto-height" frameborder="0" width="100%"></iframe> 在这个页面里面我想嵌入一个网站 地址是上面的http://www.aaa.com/service,但是现在发现会出现跨域不能访问的问题,我想请问下如何解决,最好能附上一些代码.跨域这个问题我也找到了一些文档但是不太懂,有的说需要代理页面.总之还是不太明白,麻烦高手最好能够在下面写点意见性的代码.我目前只是在a.html进行了一些操作,http://www.aaa.com/service这个B.html页面的代码我也需要进行什么操作吗?麻烦仔细说明下 谢谢了!没有分了 谁能告诉下.

跨域指的应该是数据传输的跨域,一般的解决方法就是用转正页面把数据带回到本地,然后用js来取数据。


下图是常用的跨域形式:


下面是用中转页面解决跨域的步:


1.建立一个中转页面,用来接受从服务器端返回的数据,同时在这个页面中有一段js来处理数据:

<script>
(function(){
    var str=window.location.search;
    var ret=str.match(/\w+?\=.*?(?=($|\&))/g);
    if(!ret){return;}
    var param={},i=-1,len=ret.length,ar;
    for(;str=ret[++i];){
        ar=str.split('=');
        param[ar[0]]=ar[1];
    }
    var json=param.json,callback=param.callback;
    if(!(json&&callback)){return;}
    window.setTimeout(callback+'('+decodeURIComponent(json)+')',0)
})();
</script>

这个中转页面就是一段js,不需要其他内容。

这段js的作用就是接受跟在链接后面的参数。


2.在当前页面中加上一个隐藏的iframe,并让上面的页面在这个隐藏的iframe中打开,这样一来,页面就被嵌套到你当前的页面中,所以如果你在当前页面中定义了函数,那么在iframe中是可以调用到的:

window.top或者window.parent

需要你根据需要选择。


这样一来远程的数据就通过了中转页面到达了你当前页面,解决了跨域的问题。


其他跨域方式简介:


1.img标签(只能发送)(一像素的透明图)统计点击数和流量分析)

2.iframe

3.script标签(约定回调,json格式)

4XMLHttpRequst对象

5服务器端代理


你先看一下,有问题可以继续追问,希望能帮到你!

追答

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-06-27
应该是IE的安全设置问题了
先在IE6下面测试 然后再延伸到7 8 9
IFRAME可以跨域的 IE下也是可以的 没限制本回答被网友采纳
相似回答
大家正在搜