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

klr1opcd  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(219)

此问题在此处已有答案

(9个答案)
14小时前关门了。
我正在尝试强制重载iframe的内容(强制重载意味着浏览器缓存不应该被使用).在这里的soltuion Reload an iframe with jQuery中,我可以通过下面的javascript代码来完成:

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

但是我遇到了同源策略错误。但是我确实在两个页面上都启用了CORS,一个是嵌入了iframe的页面,另一个是在iframe中加载的页面。通过Web开发工具,我验证了在 * 两个 * 加载上,CORS标题都存在:

Access-Control-Allow-Origin: *


虽然两端在不同的域下,但我控制它们,并且可以发送CORS报头或任何其他报头(如果需要)。
做这件事的正确方法是什么?

plicqrtu

plicqrtu1#

CORS对于所描述的情况是不需要的。同源策略不允许跨不同域访问DOM属性和方法。您可以使用postMessage JavaScript API来启用IFRAME和父页面之间的通信。

7tofc5zh

7tofc5zh2#

这个脚本可以使用images/jpg(相同的URL):

document.getElementById('iframe_id').contentWindow.location.reload();

使用Firefox 107.0(64位)和iframe时,尝试使用嵌入式Firefox PDF查看器重新加载应用程序/PDF时,显示以下控制台消息:

DOMException: Permission denied to access property "reload" on cross-origin object


使用Trick evko/joe时,可使用pdf和jpg格式(等)
一个二个一个一个
成功了

相关问题