reCAPTCHA 的 CORS

CORS for reCAPTCHA

我正在开发一个网站,我想在其中包含 Google 的 reCAPTCHA。

如果我将以下 <script> 标签添加到我的 <head>:

<script crossorigin="anonymous" src='https://www.google.com/recaptcha/api.js'> </script>

我收到以下错误:

Access to Script at 'https://www.google.com/recaptcha/api.js' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

好的,很好,很公平。在本地主机上工作时,我总是可以在 Chrome 上禁用 CORS。但是域名是www.google.com。我不太愿意向 google 的根域上的任何内容发送 access-control-allow-origin header - 这感觉就像一个安全漏洞,你可以让公共汽车通过。

如何通过合理的生产设置来解决这里的跨源问题?

删除 crossorigin="anonymous"

您的页面只需要 运行 脚本。它无需请求提升权限,因此您的 JS 可以访问有关它的更多信息。如果它抛出一个错误,那么您将无法访问 Google 的服务器以更正它。