Javascript Google 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

我在本教程中实现了reCAPTCHA

这是第一次提交,效果很好。我遇到的问题是:

  • 我将验证码与其他表单数据一起发送,例如用户名、电子邮件等。。。。因此,如果captcha是正确的,但其他不正确,用户将再次发送它,但第二次返回“{“success”:false}”

  • 如果我将其闲置约2分钟,它将终止会话,如果我选择该框,它将弹出警报和类似“can not refresh:invalid parameter”的警告,并且我无法再次选择该框


  • 如何解决这些问题?非常感谢。

    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', 
                                });
                            };