首页 > web前端 > js教程 > 使用 Iframe 时如何克服'SecurityError: Blocked Cross-Origin Access”?

使用 Iframe 时如何克服'SecurityError: Blocked Cross-Origin Access”?

Barbara Streisand
发布: 2025-01-01 03:33:09
原创
729 人浏览过

How to Overcome

安全错误:阻止跨源访问

尝试将 iframe 集成到 HTML 页面并使用 JavaScript 访问其元素时,您可能会遇到以下错误:

SecurityError: Blocked a frame with origin "http://www.example.com" from accessing a cross-origin frame.
登录后复制

此错误源于浏览器遵守同源策略,这是一种防止脚本访问框架的安全措施有着不同的起源。源包含协议、主机名和端口。

解决方法

虽然禁止直接跨源脚本访问,但您可以利用 window.postMessage 及其相应的消息事件在源之间建立通信框架:

主要Page:

const frame = document.getElementById('your-frame-id');
frame.contentWindow.postMessage(/*any variable or object here*/, 'https://your-second-site.example');
登录后复制

Iframe:

window.addEventListener('message', event => {
    // Verify the origin to ensure it's your site
    if (event.origin === 'https://your-first-site.example') {
        // Retrieve data from event.data
        console.log(event.data);
    }
});
登录后复制

这种方法允许框架之间的双向通信。跨源消息传递还可以应用于弹出窗口和从主页生成的其他新窗口。

以上是使用 Iframe 时如何克服'SecurityError: Blocked Cross-Origin Access”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板