微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.
只是一个猜测..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐