joe*_*joe 6 html http-headers cross-origin-embedder-policy cross-origin-opener-policy
Cross-Origin-Embedder-Policy
和Cross-Origin-Opener-Policy
headers 可以用标签设置吗<meta>
?还是只能用实际的 headers 设置?如果没有,是否有可以使用元标记设置的标头列表?
以下示例记录crossOriginIsolated: false
到控制台。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>COOP/COEP header test</title>
</head>
<body>
<script>console.log("crossOriginIsolated:", self.crossOriginIsolated)</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我删除这些http-equiv
元标记并使用实际的 HTTP 标头提供文件,那么它会记录crossOriginIsolated: true
(在 Chrome 和 Firefox 中)。所以看来我无法使用元标记设置这些标头?
小智 9
不,他们不能。
根据此规范,http-equiv
仅支持少数 HTTP 标头。
https://html.spec.whatwg.org/multipage/semantics.html#attr-meta-http-equiv。
这意味着这些标头只能由服务器设置为 HTTP(“实际”)标头。
在 HTML 中支持它们将是一个安全错误。