尝试重新加载嵌入式 iframe 时出现 CORS 错误
Posted
技术标签:
【中文标题】尝试重新加载嵌入式 iframe 时出现 CORS 错误【英文标题】:CORS error when trying to reload an embedded iframe 【发布时间】:2012-10-03 14:06:35 【问题描述】:我正在尝试强制重新加载 iframe 的内容(强制重新加载意味着不应使用浏览器缓存)。从这里的解决方案Reload an iframe with jQuery,我可以通过这个javascript代码做到这一点:
document.getElementById(FrameID).contentDocument.location.reload(true);
但是我遇到了同源策略错误。但是我确实在嵌入了 iframe 的页面和在 iframe 中加载的页面上都启用了 CORS。从 Web 开发工具中,我验证了在 两个 加载时,CORS 标头都存在:
Access-Control-Allow-Origin: *
虽然双方都在不同的域下,但我控制它们,并且可以发送 CORS 标头或任何其他标头(如果需要)。
这样做的正确方法是什么?
【问题讨论】:
【参考方案1】:所描述的情况不需要CORS。 The same origin policy 不允许跨不同域访问 DOM 属性和方法。您可以使用postMessage JavaScript API 启用 IFRAME 和父页面之间的通信。
【讨论】:
【参考方案2】:虽然这个问题很老了,但是有很多观点,所以我要在这里链接这个很好的trick 给有同样问题的开发者。
【讨论】:
以上是关于尝试重新加载嵌入式 iframe 时出现 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 TextureLoader 从 Rails 应用程序连接到 S3 时出现 CORS 错误
向本地nodeJS服务器发出发布请求时出现AngularJS CORS错误