reCAPTCHA ERROR: Invalid domain for site key

reCAPTCHA ERROR: Invalid domain for site key

我已经按照 example 中所示实施了我的 reCAPTCHA。

我在 head 标签中有这个脚本:

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

在我的 form 在 HTML 我有:

<div class="g-recaptcha" data-sitekey="my public sitekey here"></div>

但是当我加载 form 时出现此错误:

ERROR: Invalid domain for site key

我已确认这是我域的正确站点密钥。

该代码目前在一个子域中,所以我认为这可能是问题所在,所以我也将子域添加到 Google reCAPTCHA 管理员,但仍然出现错误。

完全相同的代码在不同域中 100% 有效(具有特定于该域的密钥)。
可能是什么问题?

以防有人遇到类似问题。我的决定是删除不起作用的密钥并为我的域获取一个新密钥。这现在也适用于我所有的子域,而无需在 recaptcha 管理区域中明确指定它们。

当我的 recaptcha 密钥注册到 127.0.0.1 时,我在单元测试期间使用了 localhost。所以我将浏览器更改为指向 127.0.0.1 并开始工作。尽管我能够将 "localhost" 添加到我的 ReCaptcha 密钥设置中的域列表中,但我仍然无法使用本地主机进行单元测试。我必须使用环回 IP 地址 127.0.0.1.

在重新生成解决 90% 问题的密钥之前,还有一点必须注意。

例如你的xampp目录是C:\xampp

htdocs 文件夹是 C:\xampp\htdocs

我们要打开名为:example-cap.html 的页面 页面显示错误 "invalid domain for site key"

在浏览器地址中使用您的本地主机地址,例如:

localhost/example-cap.html

这将解决您的问题

不要使用地址 c:\xampp\htdocs\example-cap.html 这将产生错误

您可能无意中将私钥用作 public 密钥。

您应该设置您的域,例如:www.abi.wapka.mobi,也就是说,如果您使用的是 wapka 网站。

请注意,如果您的域包含 wapka,它将无法正常工作,因此请将 wapka 与您的网站提供商进行比较并发送文本。

首先,密钥管理在https://www.google.com/recaptcha/admin#list

我 运行 陷入此错误是因为我在几个不同的域上使用相同的密钥,而我忘记将其中一个域添加到密钥中。

添加我的网站后,花了一两分钟(很可能是因为缓存)一切都恢复正常。

无需创建新密钥只需清除浏览器上的站点数据

如果您更改站点域,请将该域添加到现有密钥(无需创建新密钥)并保存。

https://www.google.com/recaptcha/admin#list

但 google 重新捕获在浏览器上有一些数据。清除它们然后它将与您的新域一起使用

我遇到了同样的问题,我已经解决了。 我转到 https://www.google.com/recaptcha/admin 并单击域,然后转到底部的关键设置。

我禁用了下面的选项 域名验证 验证 reCAPTCHA 解决方案的来源

点击保存,验证码开始工作。

我认为这与服务器的设置方式有关。我在一个共享主机上,只是在没有通知的情况下从 Liquidweb 转移到 Deluxehosting(因为前者将他们的共享主机卖给了后者)并且在很多问题上都遇到了这样的问题。 我认为在这种情况下 google 正在检查服务器,但它被识别为共享服务器名称而不是我的域。 当我取消选中“验证来源”时,它开始工作。 希望能暂时解决问题。

对我来说,我只是忘记在显示域的 "Key Settings" 区域输入实际域名(每行一个)。

我为此尝试了将近 4 个小时,并最终在此处的指导下解决了这个问题,我想我会与您分享我的解决方案。

好的,我的域是一个附加域。我也得到了 "ERROR for site owner: Invalid domain for site key" 我已经检查了将近一千次以确保所有内容都是正确的,并且在我看来它是正确的,直到我从桌面快捷方式的角度想到它。

解法:

因此,对于附加域,请确保父域 url 也在域列表中,即: [附加域].[父域].com 。 插件位置将是您在主机上设置的文件夹,因此在使用插件域时确保以合乎逻辑的方式命名根目录。

希望这对其他人有帮助,感谢大家的建议。

确保填写您的域名,并且不能以路径结尾。

例子

http://yourdomain.com(好)

http://yourdomain.com/folder(错误)

我想最快的方法就是在开发时禁用域检查

由于忘记显示渲染参数,我遇到了类似的问题

<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY' async defer></script>

我 运行 也遇到了这个问题,我的解决方案是验证我是否为我选择的版本集成了适当的客户端代码。

就我而言,我选择了 reCAPTCHA v3,但正在为 v2 使用客户端集成代码。

V3 看起来像这样:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
<script>
  grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
         ...
      });
  });
</script>

V2 代码如下所示:

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

至于您拥有哪个版本,这将是您在开始设置 reCAPTCHA 帐户时决定的。

我遇到了同样的问题。我解决了:我去 https://www.google.com/recaptcha/admin,点击域,然后去底部的关键设置。

我禁用了下面的选项 Domain Name Validation Verify the origin of reCAPTCHA solution.

点击保存,验证码开始工作。

尝试添加没有 http://https:// 的域,例如example.com

我的域非常复杂。我在开发人员控制台中获取了 window.location.host 返回的值,并将该值粘贴到 recaptcha 管理白名单中。然后我清除了缓存并重新加载了页面。