reCAPTCHA错误:站点密钥的域无效


73

我已经按照示例中所示实现了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我得到这个错误:

错误:站点密钥的域无效

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

该代码当前位于子域中,因此我认为可能是问题所在,因此我也将该子域添加到了Google reCAPTCHA管理员中,但仍然收到错误。

完全相同的代码在不同的域(使用特定于该域的密钥)中可以100%正常工作。
可能是什么问题呢?


我遇到了这个问题,我不得不登录我的Recaptcha仪表板,并且由于我的旧网址已更改,因此对于特定的按键设置,请添加页面的新网址。
萨阿德(Saad)

Answers:


52

如果有人有类似的问题。我的解决方案是删除无法使用的密钥,并为我的域获取一个新密钥。现在,这也适用于我的所有子域,而无需在recaptcha管理区域中明确指定它们。


9
您的旧密钥用于reCpatcha v1,新密钥用于reCaptcha v2。
最大

@Max在我的管理员列表中,它显示为v2,但不起作用。我删除了密钥并重新生成它,并且可以正常工作。
Swatantra Kumar,

谢谢,但是对于wordpress来说,您的解决方案不起作用,因为它是大约4年前的,所以我使用了此链接,现在我们应该使用版本2而不是版本3,也许明天我们应该使用3而不是2 loool。
Malus

render =“在此处使用相同的站点密钥”,对于此行还grecaptcha.execute('和我们在此处使用相同的站点密钥'
JWC

29

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

我遇到了此错误,因为我在几个不同的域上使用了相同的密钥,而我忘记将域之一添加到密钥中。

添加我的网站后,一两分钟(很可能是由于缓存)使事情再次正常运行。


22

无需创建新密钥,只需在浏览器上清除站点数据即可

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

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

但是Google recapture在浏览器上有一些数据。清除它们,然后它将与您的新域一起使用 在此处输入图片说明


21

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

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

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

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


1
完美...这就是我想要的。Thankyou
Habib Rehman

1
这救了我,谢谢。我必须将域更改为“ my-domain.com”,并在开头删除了http://部分。以下Google文章介绍了格式设置和允许使用的域:“ developers.google.com/recaptcha/docs/domain_validation
ReneGAED

12

我想最快的方法就是在开发时禁用域检查 在此处输入图片说明


7

当我的Recaptcha密钥注册到127.0.0.1时,我在单元测试期间使用了localhost。因此,我将浏览器更改为指向127.0.0.1,然后它开始工作。尽管我可以在“ ReCaptcha密钥设置”的域列表中添加“ localhost”,但是我仍然无法使用localhost进行单元测试。我必须使用回送IP地址127.0.0.1。



4

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

例如,您的xampp目录为C:\ xampp

htdocs文件夹是C:\ xampp \ htdocs

我们要打开名为example-cap.html的页面,并且页面显示错误“站点密钥的无效域”

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

本地主机/example-cap.html

这将解决您的问题

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



4

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

就我而言,我选择了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帐户设置开始时所决定的。 在此处输入图片说明


这是我的问题太多,使用Drupal的验证码验证码和模块时
马特·弗莱彻


2

对我来说,我只是忘记在“密钥设置”区域输入实际的域名,该区域显示为域(每行一个)。


1

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

请注意,如果您拥有使用wapka的域,则该域名将无法正常工作,因此请将wapka与您的网站提供商进行比较并将其发送文本。


1

我尝试了将近4个小时,并最终从这里得到了指导,我想与您分享我的解决方案。

好的,所以我的域是附加域。我还收到“网站所有者错误:网站密钥无效的域名”的信息,我检查了几乎一千次是否正确,并且对我来说似乎正确,直到我想到了桌面快捷方式。

解:

因此,对于附加域,请确保父URL也在域列表中,即:[ADDON DOMAIN]。[PARENT DOMAIN] .com。插件位置将是您在主机上设置的文件夹,因此在使用插件域时,请确保使用合理的名称来命名根。

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


1

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

我在“域名验证”下方禁用了该选项。验证reCAPTCHA解决方案的来源。

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


1

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


0

由于我忘记显示render参数,因此我遇到了类似的问题

<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY' async defer></script>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.