1

我有一个里面有 iframe 的网页:

<?php
header('Cross-Origin-Opener-Policy: same-origin');
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <iframe src="assets/html/menu.htm"></iframe>
</body>
</html>

它在 Firefox 中运行良好。

如果我添加

header('Cross-Origin-Embedder-Policy: require-corp');

Firefox 不显示 iframe 内容。错误:

Blocked Page

An error occurred during a connection to <domain>. 

我需要两个标题才能启用crossOriginIsolated.

iframe和主页面同源,为什么firefox添加第二个header后不显示iframe内容?

4

1 回答 1

0

使用object标签代替iframe标签解决了这个问题:

<?php
header('Cross-Origin-Opener-Policy: same-origin');
header('Cross-Origin-Embedder-Policy: require-corp');
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <object data="assets/html/menu.htm"></object>
</body>
</html>
于 2020-11-24T16:35:04.387 回答