尝试重新加载嵌入式iframe时出现CORS错误

时间:2012-10-12 17:46:38

标签: javascript iframe reload same-origin-policy cors

我正在尝试强制重新加载iframe的内容(强制重新加载意味着不应使用浏览器缓存)。从解决方案Reload an iframe with jQuery开始,我可以通过以下javascript代码执行此操作:

document.getElementById(FrameID).contentDocument.location.reload(true);

但我遇到同源政策错误。但我确实在两者上启用了CORS,嵌入了iframe的页面和iframe中加载的页面。从Web开发工具我已经验证,在两个加载时,CORS头存在:

Access-Control-Allow-Origin: *

虽然双方都在不同的域下,但是如果需要,我可以控制它们并发送CORS标头或任何其他标头。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

描述的案例不需要CORS。 The same origin policy不允许跨不同域访问DOM属性和方法。您可以使用postMessage JavaScript API启用IFRAME和父页面之间的通信。

答案 1 :(得分:0)

虽然这个问题很老了,但它有很多观点,所以我将把这个很好的 trick 链接到这里,供遇到相同问题的开发者使用。