ig0r74
@ig0r74
MODX-разработчик

Как инициализировать reCAPTCHA V3 через js?

Дело в том, что если делать инициализацию стандартным способом, то после удачной отправки формы через AJAX в консоли браузера появляется ошибка Uncaught Error: No reCAPTCHA clients exist. и до перезагрузки страницы невозможно повторно отправить форму.

Мне нужно просто перерендерить капчу, но для этого нужен ее id.

grecaptcha.render(
    container,
    parameters
)


Если же я инициализирую капчу по примеру invisible (v2), то появляется ошибка Invalid site key or not loaded in api.js.

<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
<input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response">
<div id="rcv3_ajaxform"></div>
<script>
    var onloadCallback = function() {
        var = widget_ajaxform = grecaptcha.render('rcv3_ajaxform', {
            'sitekey' : '00000000000-publick-key-000000000000'
        });
        grecaptcha.execute('widget_ajaxform', { action: 'ajaxform' })
        .then(function(token) {
            document.getElementById('g-recaptcha-response').value=token;
        });
    };
</script>
  • Вопрос задан
  • 6574 просмотра
Пригласить эксперта
Ответы на вопрос 1
@mmman
Каждый раз, когда от Рекапчи v3 что-то нужно (инициализация, релоад) вызывайте её в формате
grecaptcha.execute('ключ_сайта', {action: 'если_надо'})
    .then(function(token) {
        ....
    });
});

Она сама разберется, что сейчас нужно делать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект