Javascript Google reCAPTCHA第二次提交失败
我在本教程中实现了reCAPTCHA 这是第一次提交,效果很好。我遇到的问题是:Javascript Google reCAPTCHA第二次提交失败,javascript,php,jquery,google-chrome,captcha,Javascript,Php,Jquery,Google Chrome,Captcha,我在本教程中实现了reCAPTCHA 这是第一次提交,效果很好。我遇到的问题是: 我将验证码与其他表单数据一起发送,例如用户名、电子邮件等。。。。因此,如果captcha是正确的,但其他不正确,用户将再次发送它,但第二次返回“{“success”:false}” 如果我将其闲置约2分钟,它将终止会话,如果我选择该框,它将弹出警报和类似“can not refresh:invalid parameter”的警告,并且我无法再次选择该框 如何解决这些问题?非常感谢。Google reCAPTCHA
如何解决这些问题?非常感谢。Google reCAPTCHA提供了以下两个功能:我总是在所有支持AJAX的表单中使用它
grecaptcha.getResponse()
grecaptcha.reset()代码>
对于这两个问题,在JavaScript代码中需要时使用第二个函数
请记住,如果您的页面中只有一个验证码,则此方法有效。如果您有两个以上的验证码,请按照谷歌文档中的说明使用它们的ID
在研究过程中遇到相同问题的人;
如果在自动呈现验证码时遇到问题,请尝试显式呈现。为此,在body标记中添加以下代码
<script src="https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit&hl=tr" async defer></script>
我正在使用AJAX检查注册表并获得响应。因此,我在AJAX响应中添加了重置函数
$('frmRegistration')。提交(函数(){
$.ajax({
url:“\u ajax/\u ajaxRegistration.php”,
类型:“POST”,
数据:$('#frmRegistration')。序列化(),
成功:功能(回复){
$('#resultRegistration').html(回复);
grecaptcha.reset();
}
});
});代码>
参考资料 谢谢。这解决了问题。
var recaptchaCallback = function () {
// alert("grecaptcha is ready!");
grecaptcha.render("YOUR HTML DIV ID", {
'sitekey': 'YOUR SITE KEY',
});
};