reCAPTCHA的CORS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reCAPTCHA的CORS相关的知识,希望对你有一定的参考价值。

我正在开发一个我希望将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.

好的,很好,很公平。在localhost上工作时,我总是可以在Chrome上禁用CORS。但该域名是www.google.com。我真的不太愿意将go-control-allow-origin标头发送到google根域上的任何内容 - 感觉就像是一个安全漏洞,你可以开车穿过。

如何通过合理的生产设置解决这个问题,以解决交叉原因问题?

答案

删除crossorigin="anonymous"

您的页面只需要运行脚本。它无需要求提升权限,因此您的JS可以访问有关它的更多信息。如果它引发了错误,那么无论如何都无法访问Google的服务器以进行纠正。

以上是关于reCAPTCHA的CORS的主要内容,如果未能解决你的问题,请参考以下文章

来自生产服务器的 Recaptcha 请求

如何在单页应用程序 (SPA) 中实现 ReCaptcha

发出 POST 请求时出现 Google Cloud Function CORS 错误

代码错误时刷新reCaptcha

尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?

reCAPTCHA v3 - 错误:没有reCAPTCHA客户端