谷歌分析跟踪代码给出 CORS 错误

Posted

技术标签:

【中文标题】谷歌分析跟踪代码给出 CORS 错误【英文标题】:Google Analytics tracking code giving CORS error 【发布时间】:2018-04-01 02:03:19 【问题描述】:

我正在使用昨天从我的帐户中获得的新的 Google Analytics(分析)跟踪代码(在我看来是这样的)。它利用了一些“全球站点标签”。按照 GA 的指示,我已将其放在 .

这是确切的消息:

CORS 策略已阻止从源“my website”访问“https://www.googletagmanager.com/gtag/js?id=my-id”处的脚本:“Access-Control-Allow-Origin”标头的值为“http://www.googletagmanager.com” ' 不等于提供的原点。

导致这个错误的脚本是这样包含的

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="//www.googletagmanager.com/gtag/js?id=my-id"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag()dataLayer.push(arguments);
  gtag('js', new Date());

  gtag('config', 'my-id');
</script>

上面的代码与来自 Google Analytics 的完全相同,所以我不确定它为什么不起作用..

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

2020-04-24 更新Google 显然已修复此问题,因此问题中描述的错误不应再发生,根据 https://support.google.com/tagmanager/thread/15985818?&msgid=37309069 和 cmets 对此答案的说明,


2018-01-18 回答

就这个错误信息而言:

从 'googletagmanager.com/gtag/js?id=my-id' 访问脚本 来源“我的网站”已被 CORS 政策阻止

...您应该看到该错误消息的唯一情况是您的script 元素是否具有crossorigin 属性;例如,crossorigin="anonymous"

如果您没有在自己的任何代码中添加 crossorigin="anonymous" 属性,则您可能使用了某个注入它的 CDN 系统。

【讨论】:

这是正确的答案,但真正的问题是谷歌在他们的 cors 政策中使用“http”而不是“https”犯了一个错误。考虑到他们推动 https 的方式有点讽刺,一年多之后它仍然没有修复!他们应该在 CORS 中使用:googletagmanager.com 我想补充一下,来自 googletagmanager 的响应标头如下所示:Access-Control-Allow-Origin: googletagmanager.com thats http not https 人们可以在此处向 Google 提出问题 - support.google.com/tagmanager/thread/15985818 支持线程已在此处更新support.google.com/tagmanager/thread/15985818?hl=en【参考方案2】:

我自己也遇到过类似的错误。 如果您是 Google 跟踪代码管理器的新手,可能是因为您还没有发布跟踪代码管理器。您可以通过以下方式检查您是否属于这种情况:

https://tagmanager.google.com

并检查绿色窗格是否显示“容器未发布”

如果这是您的情况,那么 GTM 将不会加载,因为它处于“草稿”模式并且尚未准备好使用。

一旦你发布了你的第一个版本,它就会开始正常工作。

如果您对 GTM 进行任何更改,请记住发布新版本以在您的网站上查看结果。

【讨论】:

【参考方案3】:

到目前为止(2020 年 11 月 6 日),GTM 开发团队似乎还没有解决 AMP 脚本的问题... https://support.google.com/tagmanager/thread/15985818?hl=en&msgid=37309069

【讨论】:

以上是关于谷歌分析跟踪代码给出 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章

javascript js错误检测跟踪事件谷歌分析(js)

javascript 使用GTM的客户端Javascript错误跟踪(谷歌分析)

Yii2 和 reactjs CORS 过滤器给出错误:预检响应具有无效的 HTTP 状态代码 401

在 Firefox 上,CORS 请求给出错误“:”(冒号)

在我的 express 中为 node.js 设置了 cors 但仍然给出关于 cors 的相同错误

React Ajax Request 给出 CORS 错误但返回数据