iframe
是 HTML 中的一个元素,用于在当前页面中嵌入另一个 HTML 页面。跨域是指在一个域名的网页中加载另一个域名的资源,由于浏览器的同源策略(Same-Origin Policy),默认情况下,不同域名之间的资源是相互隔离的。
iframe
可以用来隔离不同域名的内容,防止恶意脚本跨域攻击。iframe
中的内容可以并行加载,不会阻塞主页面的加载。iframe
:嵌入的页面与主页面属于同一个域名。iframe
:嵌入的页面与主页面属于不同的域名。iframe
中,广告内容可以来自不同的域名。iframe
嵌入第三方登录页面,如微信登录、QQ 登录等。iframe
无法访问 iframe
中的内容原因:浏览器的同源策略限制了不同域名之间的资源访问。
解决方法:
Access-Control-Allow-Origin
头,允许特定的域名访问资源。Access-Control-Allow-Origin
头,允许特定的域名访问资源。<script>
标签不受同源策略限制的特性,通过动态创建 <script>
标签来请求数据。<script>
标签不受同源策略限制的特性,通过动态创建 <script>
标签来请求数据。postMessage
API:通过 postMessage
API 在不同域名的窗口之间安全地传递消息。postMessage
API:通过 postMessage
API 在不同域名的窗口之间安全地传递消息。通过以上方法,可以有效地解决 iframe
子域名跨域的问题。