【问题标题】:How do i validate recapcha v2 in html based website我如何在基于 html 的网站中验证 recaptcha v2
【发布时间】:2018-04-05 15:29:53
【问题描述】:

我附上了我正在使用的代码,在加载页面时它给了我一个错误提示

无法联系 reCAPTCHA。请检查您的连接,然后重试。

请记住,我不会使用任何服务器端代码。我的网站有简单的 html。

<html>
<head>
<title>reCAPTCHA demo: Explicit render after an onload callback</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
<div class="g-recaptcha" data-sitekey="my_site_key"></div>
</body>
</html>

【问题讨论】:

  • “请记住我不会使用任何服务器端代码。我的网站使用的是简单的 html。” - 那么首先使用 CAPTCHA 有什么意义呢? // 你是通过在浏览器中通过http(s):// 调用文档来测试这个,还是只是通过本地文件系统打开文件?
  • “那么首先使用 CAPTCHA 有什么意义呢?” - 我有联系我们的表格并使用网络服务发送详细信息,所以希望你明白我为什么需要输入验证码。现在我正在尝试使用虚拟 html 并尝试通过本地文件系统打开文件。
  • “我有联系我们的表格并使用网络服务发送详细信息,所以希望你明白我为什么需要输入验证码” - 所以网络服务将验证这一点那么验证码呢? (因为如果不是,整个事情一开始就毫无意义。)“现在我正在尝试使用虚拟 html 并尝试通过本地文件系统打开文件” - 然后尝试嵌入外部资源像使用 //... 的 jQuery 一样不起作用,您的浏览器控制台应该已经提醒您注意这一事实。
  • " 那么网络服务会验证这个验证码吗?" - 我不知道我们是否可以使用网络服务验证验证码。这就是我提出这个问题的原因,因为我不知道如何在不使用任何服务器端代码的情况下在 html 页面中实现验证码。另外,您能否建议您是否有其他想法在 html 页面上实现验证码?
  • 那么一开始就没有意义了。当网络服务收到虚假数据时,它需要拒绝实际发送电子邮件。首先,您需要他们积极合作来检查 CAPTCHA,否则我只会将我的数据发送到同一端点,甚至不使用您的表单。

标签: jquery html recaptcha


【解决方案1】:

简而言之,你不能。您必须将您的站点密钥、密钥和响应发送到 Google API 以进行验证。

但是有一个解决方案可以检查验证码是否已填充。当用户解决验证码时,会填充一个名为 g-recaptcha-response 的元素。

使用一些 javascript,您可以检查用户是否已经解决了验证码。

var response = grecaptcha.getResponse();

if(response.length == 0)
    //reCaptcha not verified

else
    //reCaptch verified

但是,此解决方案不是保存解决方案。如果有人只是更改了 dom,看起来元素 g-recaptcha-response 已填充,它将通过您的验证。 要绝对确定验证码已解决,您必须向 Google 发送 API 请求。

编辑:这个问题也曾被问过(多次)。
How can I validate google reCAPTCHA v2 using javascript/jQuery?

【讨论】:

  • 这种问题已经被问过很多次了,但没有人回答正确,你可以在你分享的链接中看到它。我的问题也略有不同,我没有回应,但是我说在页面加载时它向我显示错误。那么您有什么解决方案可以在简单的 html 页面上实现验证码吗?如您所知,我们是开发者,我们从不说“我们不能”。
  • 我实现了相同的,它工作正常。稍后我将分享相同的代码。
猜你喜欢
  • 2015-06-15
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
相关资源
最近更新 更多