Google reCAPTCHA 第二次提交失败
Posted
技术标签:
【中文标题】Google reCAPTCHA 第二次提交失败【英文标题】:Google reCAPTCHA fail for second time submit 【发布时间】:2015-09-08 19:04:00 【问题描述】:我在本教程中实现了 reCAPTCHA,
https://codeforgeek.com/2014/12/google-recaptcha-tutorial/
第一次提交效果很好。我遇到的问题是:
我将验证码与其他表单数据一起发送,例如用户名,电子邮件等....所以如果验证码正确但其他不正确,用户将再次发送,但第二次返回““成功”:假”
1234563如何解决这些问题?非常感谢。
【问题讨论】:
【参考方案1】:Google reCAPTCHA 提供了这两个功能:我总是在所有支持 AJAX 的表单中使用它。
grecaptcha.getResponse()
grecaptcha.reset();
对于您的这两个问题,只要您需要在 javascript 代码中使用第二个函数。
请记住,如果您的页面中只有一个 CAPTCHA,则此方法有效。如果您有两个以上的验证码,请按照 Google 文档中的说明使用它们的 ID
https://developers.google.com/recaptcha/docs/display#js_api
【讨论】:
谢谢。这解决了问题。【参考方案2】:在研究过程中遇到相同问题并遇到此主题的人; 如果您在自动渲染验证码时遇到问题,请尝试显式渲染它。为此,请在 body 标记内添加以下代码。
<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit&hl=tr" async defer></script>
var recaptchaCallback = function ()
// alert("grecaptcha is ready!");
grecaptcha.render("YOUR html DIV ID",
'sitekey': 'YOUR SITE KEY',
);
;
我正在使用 AJAX 检查注册表并获得响应。所以我在我的 AJAX 响应中添加了重置功能。
$('#frmRegistration').submit(function ()
$.ajax(
url: "_ajax/_ajaxRegistration.php",
type: "POST",
data: $('#frmRegistration').serialize(),
success: function (reply)
$('#resultRegistration').html(reply);
grecaptcha.reset();
);
);
参考Google reCaptcha explicit render。
【讨论】:
以上是关于Google reCAPTCHA 第二次提交失败的主要内容,如果未能解决你的问题,请参考以下文章
google recaptcha failed to load怎么办
Javascript/Google 地图,自动创建的组合框在第二次迭代中失败