我正在尝试将 GA4 分析添加到以前具有 UA 分析的网站。我在 <head>
下面添加了新的 GA4 代码片段按照指示标记。
控制台中出现以下错误(以及其他一些具有类似消息的错误),我不确定我做错了什么:
Refused to load the script 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXX' because it violates the following Content Security Policy directive: "default-src 'self' 'unsafe-eval' 'unsafe-hashes' 'unsafe-inline' data: blob:". Note that 'script-src-elem' was not explicitly set, so 'default-src' is used as a fallback.
analytics.js:34 [Report Only] Refused to connect to 'https://www.google-analytics.com/j/collect?XXXXX' because it violates the following Content Security Policy directive: "default-src 'self' 'unsafe-eval' 'unsafe-hashes' 'unsafe-inline' data: blob:". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
非常感谢任何正确方向的帮助或指示!
最佳答案
好吧,我感受到你的痛苦。我最近经历了很多这样的事情。然而,您收到的消息比乍一看更有帮助。
首先,您需要知道您的内容安全策略来自哪里,因此启动 postman 并戳您的网站并查看返回的 header 。我相信任何内容安全策略 header 都会覆盖您在页面中设置的任何内容。
现在仔细阅读内容安全策略并将其与错误消息进行比较,确切地说是错误的......这就是错误所在。
因此,引用您的具体错误,如果您仔细考虑,可以将其添加到内容安全策略中:
script-src-elem 'unsafe-inline' www.googletagmanager.com;
接下来您需要确定如何更改该 header 。这可能很棘手。 Web 服务器可能需要重新配置。或者,如果您使用的是 Cloudfront,那么您需要更改分发中的响应 header ,或者更改适合您正在使用的服务器或 CDN 的内容,需要进行研究。
然后,当您修复该错误时...您将遇到一个新错误,例如:
Refused to connect to https://region1.google-analytics.com/g/collectPolicy
directive: default-src self unsafe-eval unsafe-inline fonts.googleapis.com.
Note that connect-src was not explicitly set, so default-src is used as
a fallback.
您将通过准确修复消息所说的错误内容来再次解决此问题,清洗,冲洗,重复,直到您的开发者控制台满意为止。
因此,就我而言,为了解决此问题,我将其添加(前置)到我现有的内容安全策略中:
connect-src *.google-analytics.com; script-src-elem 'unsafe-inline' www.googletagmanager.com;
关于html - Google 分析出现问题,拒绝连接,因为它违反了以下内容安全政策指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75940522/