Javascript权限被拒绝 - 不同的端口

时间:2010-03-12 15:55:01

标签: javascript iframe permissions

我在端口3000上运行了一个rails应用程序。有问题的页面有一个iframe,我需要根据iframe中加载的内容的高度调整它的大小。

<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0" 
src="<%=invite_path(@invite.alias)%>" 
onload="util.resize_iframe('ifrm_col3');"></iframe>

调整大小功能在这里:

util.resize_iframe = function(frame_id) {
  var h = document.getElementById(frame_id).contentWindow.document.body.scrollHeight;
  document.getElementById(frame_id).height = h; 
}

加载iframe后,我在FireBug中看到了这个错误:

Error: Permission denied for <http://192.168.0.157> to get property Window.document from <http://192.168.0.157:3000>.
Source File: http://192.168.0.157:3000/javascripts/application.js?1268327481
Line: 84

为iframe呈现的HTML如下所示:

<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0" 
            src="/invite/my-invite-1" 
            onload="util.resize_iframe('ifrm_col3');"></iframe>

iframe的src是一个相对路径,但我不确定为什么不保留父页面的端口信息。这个问题有解决方法吗?

我尝试在父页面中创建一个函数并从iframe调用它,但遇到了同样的问题。

由于网站的额外功能,我需要坚持端口3000的rails应用程序。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:2)

你确定<%=invite_path(@invite.alias)%>确实输出了相对路径吗?沿途什么都没有解决(错误)? src属性的实际输出结果如何?