Отказано в доступе к Javascript - другой порт - PullRequest
1 голос
/ 12 марта 2010

У меня есть приложение rails, работающее на порту 3000. На странице, о которой идет речь, есть 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

HTML-код, отображаемый для iframeвыглядит так:

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

Src iframe является относительным путем, но я не уверен, почему информация о порте с родительской страницы не сохраняется.Есть ли решение этой проблемы?

Я попытался создать функцию на родительской странице и вызвать ее из iframe, но столкнулся с той же проблемой.

Из-за дополнительных функций на сайте, мне нужно придерживаться порта 3000 для приложения rails.

Любое предложение приветствуется.

1 Ответ

2 голосов
/ 12 марта 2010

Вы уверены, что <%=invite_path(@invite.alias)%> на самом деле выводит относительный путь? Что ничто не решило это (неправильно) по пути? Как выглядит фактический вывод атрибута src?

...