0

使用头盔 js 时,我无法将谷歌表单附加到我的网站。允许它的代码是什么?

框架

<iframe src="https://docs.google.com/forms/d/e/..." width="600" height="850px" class="col-12" frameborder="0" marginheight="0" marginwidth="0">Loading…&lt;/iframe>

头盔中间件

app.use(helmet({
    contentSecurityPolicy: {
        directives: {
            frameSrc: ["'self'", "https://docs.google.com/forms"],
        }
    },
}));

客户端错误

拒绝构建“https://docs.google.com/forms”,因为它违反了以下内容安全政策指令:“default-src 'self'”。请注意,'frame-src' 没有明确设置,所以 'default-src' 用作后备。

4

1 回答 1

0

最后,我得到了解决方案。

如果我们想在网站上嵌入任何链接,我们需要设置 COEP(Cross-Origin-Embedder-Policy)响应头。

app.use(helmet({
    contentSecurityPolicy: {
        directives: {
            "frame-ancestors": ["'self'", "*.google.com/"],
            frameSrc: ["'self'", "*.google.com/"],
            childSrc: ["'self'", "*.google.com/"]
        }
    },
    // crossOriginEmbedderPolicy: false
}));

app.use((req, res, next) => {
    res.header("Cross-Origin-Embedder-Policy", "cross-origin")
    next()
})
于 2022-02-07T06:18:21.980 回答