Невидимая reCAPTCHA не подчиняется, просто перезагружается бесконечно - PullRequest
0 голосов
/ 03 июня 2018

У меня есть программно обязательный метод, когда я нажимаю кнопку отправки, на странице никогда не появляются признаки загрузки.Я вижу только, что значок перезагружается бесконечно, моя консоль показывает, что одни и те же ресурсы загружаются многократно, как только он достигает точки, где очевидно, что reCAPTCHA считает меня спамом робота и заставляет меня разрешать капчи, я решаю их, и процесс повторяется снова,это никогда не заканчивается.

Это мой код, основанный на этом ответе Проверка формы HTML5 до :

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

у reCAPTCHA Что может происходить и как его решить?Я работаю на localhost с отключенным verify the origin of reCAPTCHA solutions.

Заранее спасибо

1 Ответ

0 голосов
/ 25 июля 2018

Проверка кода происходит перед выполнением функции onSubmit.Это означает, что сначала происходит проверка капчи, затем вы отправляете форму, и вы снова сбрасываете капчу, и grecaptcha.execute() снова вызывает функцию onSubmit.Снова и снова.

Я не знаю, где находится ваша проверка, но для предоставленного кода вы просто хотите избавиться от этого дополнительного выполнения recaptcha, поэтому $('#login').submit() здесь не требуется.

...