我正在尝试使用jQuery从iframe guest虚拟机向iframe主机发送自定义消息(我们正在开发guest虚拟机和主机)。来宾和主机位于同一个域中,但位于不同的端口上。此外,iframe主机是从Liferay门户实例(5.2.3)中的portlet呈现的,门户网站会破坏portlet的主机URL。主机和访客URL如下所示:
主持人:http://localhost:8080/host/foo/bar?p_p_id=portletname_WAR_portletname_INSTANCE_nNz9&...
嘉宾:http://localhost:8081/guest
我知道尝试执行此消息传递违反了浏览器强制执行的相同原始策略。为了解决这个问题,我看过使用PortHole,EasyXDM和jquery-postmessage-plugin。
我遇到的问题是:要使这些库工作,发件人(iframe guest)需要知道主机URL,但不能提前知道损坏的portlet主机URL。