【发布时间】:2021-05-09 09:26:14
【问题描述】:
我正在尝试将 React-GA 添加到 React Web 应用程序,并按照文档将其添加到 index.js:
import ReactGA from 'react-ga';
ReactGA.initialize('MY_ID');
ReactGA.pageview(window.location.pathname + window.location.search);
但是,这会导致浏览器控制台出现以下错误
访问 XMLHttpRequest 在 'https://www.google-analytics.com/j/collect?......' 来自原产地“http://localhost:3000”已被 CORS 政策阻止: 响应中“Access-Control-Allow-Origin”标头的值 当请求的凭证模式为 '包括'。发起请求的凭证模式 XMLHttpRequest 由 withCredentials 属性控制。
analytics.js:37 发布 https://www.google-analytics.com/j/collect?.....。 网络::ERR_FAILED
查看网络选项卡中的 Google Analytics HTTP 响应,我肯定看到了为 access-control-allow-headers 设置的通配符:
access-control-allow-credentials: true
access-control-allow-headers: *
access-control-allow-methods: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS
access-control-allow-origin: *
access-control-expose-headers: *
...
但是,我不确定如何最终解决此问题,因为它似乎是由 Google 的响应引起的。
【问题讨论】:
-
在 Angular 10 应用中遇到同样的问题。
-
这很奇怪。标头
access-control-allow-credentials不应与access-control-allow-origin的通配符值组合。access-control-allow-credentials标头解锁凭证请求,而access-control-allow-origin: *的值与此类请求不兼容。您还向非标准j/collect端点发送请求。我认为你应该在你的 GA 设置中寻找修复,因为 React-GA 所做的只是包装 Google 的analytics.js库,它通常也不发送凭据请求。
标签: reactjs google-analytics react-ga