我有一个托管一些公开内容的网站:https://secure.example.com/PublicContent.html
。我通过不安全的网站上的iframe呈现它:http://public.example.com
。我有两个网页设置document.domain = "example.com";
。
如果我使用HTTPS加载public.example.com
,我可以使用onload
属性正确调整iframe大小:
onload="this.style.height = this.contentWindow.document.body.scrollHeight + 'px';"
但是,如果我在没有HTTPS的情况下加载public.example.com
,我会得到Access is denied.
任何想法如何让它在HTTP上运行?
答案 0 :(得分:0)
如果您正在使用this.contentWindow
同源政策:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
如果两个页面的协议,端口(如果指定了端口)和主机相同,则两个页面具有相同的来源。
要在同一域之间共享信息,无论使用哪种协议,您可能需要查看cookie。 https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Cross-origin_data_storage_access
此外,使用此lib解决类似问题:https://github.com/davidjbradshaw/iframe-resizer