Как проверить ответ Google Recaptcha V3 с помощью AJAX - PullRequest
0 голосов
/ 07 июня 2018

У меня есть эта функция для выполнения POST-запроса Ajax:

function ajaxPost(url, data, callback) {
    var req = new XMLHttpRequest();
    req.open("POST", url, true);
    req.addEventListener("load", function () {
        if (req.status >= 200 && req.status < 400) {
            callback(req.responseText);
        } else {
            console.error(req.status + " " + req.statusText + " " + url);
        }
    });
    req.addEventListener("error", function () {
        console.error("Erreur réseau avec l'URL " + url);
    });
    req.send(data);
}

Но с этим кодом captcah никогда не проверяется:

grecaptcha.ready(function() {
    grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
        var data = new FormData();
        data.set('g-recaptcha-response',token);
        ajaxPost("url", data, function(response){
            return response;
        });
    });
});

Сценарий выполняется ajaxPost() ДО grecaptcha.execute().

Спасибо за помощь!

1 Ответ

0 голосов
/ 07 июня 2018

Я не уверен, для чего вам нужен обратный звонок?Вы уже назначаете слушателя для «загрузки».Я думаю, что вы можете напрямую вернуть req.responseText в этом слушателе.Просто предположение ..

...