不可见的reCAPTCHA不提交,只是无限地重新加载

时间:2018-06-02 21:43:58

标签: javascript jquery html invisible-recaptcha

我有编程方法,一旦我点击提交按钮,页面永远不会显示加载的迹象。我只看到徽章无限重装,我的控制台显示重复加载的相同资源,一旦达到显然reCAPTCHA认为我是机器人垃圾邮件并让我解决验证码的点,我解决它们并再次重复该过程,它永远不会结束。

这是我的代码基于此答案HTML5 form validation before reCAPTCHA's

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src='https://www.google.com/recaptcha/api.js' async defer></script>
...
<form id='login' role='form' method='post'>
    <div class="form-group">
        <label for='form-user'>Username</label>
        <input type='text' class='form-control' id='form-user' name='form-user' placeholder='Username' required>
    </div>
    <div class="form-group">
        <label for='form-password'>Password</label>
        <input type='password' class='form-control' id='form-password' name='form-password' placeholder='Password' required>
    </div>
    <div class='g-recaptcha' data-sitekey='my-key' data-size='invisible' data-callback='onSubmit'></div>
    <input type='submit' value='Sign In' name='submit-btn' class='btn btn-default'>
</form>
<script>
    $('#login').submit(function (event) {
        event.preventDefault();
        grecaptcha.reset();
        grecaptcha.execute();
    });

    function onSubmit(response) {
        $('#login').submit();
    }
</script>

可能发生什么以及如何解决?我正在使用已禁用verify the origin of reCAPTCHA solutions的localhost。

提前致谢

1 个答案:

答案 0 :(得分:0)

验证码验证在执行onSubmit函数之前进行。这意味着首先要进行验证码验证,然后提交表单,然后再次重置验证码,然后grecaptcha.execute()再次调用onSubmit函数。再三,一而再再而三。

我不知道您的验证在哪里,但是对于所提供的代码,您只想摆脱那些额外的重新验证执行,因此$('#login').submit()在这里不是必需的。