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>
  • Вопрос задан
  • 6839 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mmman
Каждый раз, когда от Рекапчи v3 что-то нужно (инициализация, релоад) вызывайте её в формате
grecaptcha.execute('ключ_сайта', {action: 'если_надо'})
    .then(function(token) {
        ....
    });
});

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

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект