首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问IFrame时,出现IE9“访问被拒绝”错误

访问IFrame时,出现IE9“访问被拒绝”错误
EN

Stack Overflow用户
提问于 2012-08-21 02:09:36
回答 1查看 2.5K关注 0票数 3

我的计算机(本地主机)上有一个html页面(test.html)。在页面上的iframe中,我加载了abc.example.com

我想从另一个域xyz.example.com访问iframe abc.example.com的内容。这是我到目前为止尝试过的:

代码语言:javascript
复制
//test.html in abc.example.com
<input type="textbox" />
<input type="submit" value="click_me" />

//Start.html in xyz.example.com

<script type="text/javascript">
  $(document).ready(function() {

    $("#ok").click(function() {
      //using javascript
      var oo = document.getElementById("myFrame");

      document.getElementById("divFrame").innerHTML = 
        oo.contentWindow.document.body.innerHTML;   
    });

  });
</script>

<iframe id="myFrame" src="http://localhost/exam/test.html"></iframe>
<div id="divFrame"></div>
<input type="submit" id="ok" />

但是当我按下"ok“按钮时,它抛出了一个"Access is Denied"错误。在使用jQuery模拟iframe中的点击时,我也得到了相同的错误:

代码语言:javascript
复制
var btn = window.frames[0].document.getElementsByName('click_me');
btn[0].click();
EN

回答 1

Stack Overflow用户

发布于 2012-08-21 02:14:56

在JavaScript中,您不能访问不同域上的帧。它被称为Same origin Policy。如果这是允许的,例如,你可以打开一个隐藏的框架来加载facebook和google+并窃取每个人的信息!

在某些情况下,有一种绕过同源策略的方法,但您需要显式地将一个域列入白名单。就像使用Cross-origin resource sharing时一样。因此,可以动态(AJAX/XMLHTTPRequest)从另一个域获取数据,但也必须控制另一个域。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12042793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档