javascript – 如何使用AJAX验证Google Recaptcha V3响应

我有这个函数来执行Ajax POST请求:

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;
        });
    });
});

该脚本在grecaptcha.execute()之前执行ajaxPost().

谢谢您的帮助 !

解决方法:

我不确定你需要回调的是什么?您已经为“加载”分配了一个监听器.我想你可以直接在那个监听器中返回req.responseText.
只是一个猜测..

上一篇:php – 需要帮助reCAPTCHA – 不断变得不正确 – 验证码 – 溶胶


下一篇:json-caching-proxy 支持har 的cache proxy