首页 > 解决方案 > Google recaptcha v3-获取控制台错误 net::ERR_BLOCKED_BY_RESPONSE 200

问题描述

Google recaptcha v3- 在我的网站上正常工作,但我收到控制台错误net::ERR_BLOCKED_BY_RESPONSE 200 如何解决此错误?

谢谢

标签: javascriptphprecaptcha-v3

解决方案


在过去的几天里,我在控制台中间歇性地收到相同的错误。即使 Recaptcha 脚本在我网站的所有页面上,也只有一些页面会显示这些控制台错误。在 Chrome 的 DevTools 的 Network 选项卡中更深入地查看它,它有以下消息:

"NOT-SET cross-origin-embedder-policy 要将这个框架嵌入到您的文档中,响应需要通过指定以下响应标头来启用跨域嵌入器策略: Cross-Origin-Embedder-Policy: require-corp"

DevTools 提供的更多信息:

“由于您的站点启用了跨域嵌入策略 (COEP),因此每个嵌入式 iframe 还必须指定此策略。这种行为可以保护私人数据不被暴露给不受信任的第三方站点。

要解决此问题,请将以下内容添加到嵌入框架的 HTML 响应标头中:Cross-Origin-Embedder-Policy: require-corp

受影响的资源:

被阻止的资源 > 请求:webworker.js?hl=en&v=...

父框架:www.google.com/recaptcha/api2/anchor ?ar=1 ..。

在https://web.dev/coop-coep/了解更多信息

这似乎是谷歌为谷歌制造的问题。我们不能修改父框架(谷歌的)响应头。

我在不同的浏览器中做了进一步的测试,这个错误似乎只出现在基于 Chromium 的浏览器上,即 Chrome 和 Edge。我还提交了 chromium 项目的新问题https://bugs.chromium.org/p/chromium/issues/detail?id=1259354

更新 铬浏览器团队找到了解决方案。

Recaptcha 团队正在将 COEP 强制实施滚动回零。结果应该是全面的 COEP 仅报告标头,这应该可以解决此问题。

根本原因(据我了解)是 COEP 执行状态未在“锚”文档和“webworker.js”资源之间同步。 资源


推荐阅读