J'ai une application rails qui s'exécute sur le port 3000. La page en question a un iframe et je dois le redimensionner en fonction de la hauteur du contenu chargé dans l'iframe.Autorisation JavaScript refusée - port différent
<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0"
src="<%=invite_path(@invite.alias)%>"
onload="util.resize_iframe('ifrm_col3');"></iframe>
La fonction de modification de taille est ici:
util.resize_iframe = function(frame_id) {
var h = document.getElementById(frame_id).contentWindow.document.body.scrollHeight;
document.getElementById(frame_id).height = h;
}
Après les charges iframe, je vois cette erreur dans 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
rendu HTML pour l'iframe ressemble à ceci:
<iframe id="ifrm_col3" name="ifrm_col3" frameborder="0"
src="/invite/my-invite-1"
onload="util.resize_iframe('ifrm_col3');"></iframe>
Le src de iframe est un chemin relatif, mais je ne sais pas pourquoi les informations de port de la page parent ne sont pas conservées. Y at-il une solution de contournement à ce problème?
J'ai essayé de créer une fonction dans la page parente et de l'appeler à partir de l'iframe, mais j'ai rencontré le même problème.
En raison des fonctionnalités supplémentaires sur le site, je dois m'en tenir au port 3000 pour l'application rails.
Toute suggestion est appréciée.
@ T.J. Crowder, merci pour la réponse. Oui, j'ai mis à jour le post avec un extrait HTML. – Grnbeagle
@Grnbeagle: Je ne vois aucune raison pour que le navigateur interprète (mette) cela comme étant sur le port 80 au lieu de 3000, à condition que la page dans laquelle iframe est est servi via le port 3000. –
@ T.J. Crowder, tu as raison. Cela ne devrait pas arriver. C'est de ma faute. La page de la question utilise une bibliothèque client stomp qui nécessite de définir document.domain. Je fais des recherches sur la façon de contourner cela. Merci tout de même pour ta contribution. – Grnbeagle