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

标签 javascript php ajax recaptcha

我有这个函数来执行 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);
}

但是使用这段代码,验证码永远不会被检查:

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

关于javascript - 如何使用 AJAX 验证 Google Recaptcha V3 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50740913/

相关文章:

javascript - 如何从 javascript 中的表单数据中删除选定的输入对象?

php - 类作用域和对象作用域之间的区别

javascript - 如何更改 Ajax 请求类型和数据

ajax - 当其他人正在查看同一页面时,页面上会弹出横幅以通知您

javascript - Ajax 错误: Failed to load resource: the server responded with a status of 500 (Internal Server Error)

php - 登录到ajax加载首页

javascript 从(sinatra 的)流响应中保存文件

javascript - 如何在没有 Array.prototype.reverse 的情况下反转 JavaScript 中的数组?

php - 为什么这个 PDO 语句会默默地失败?

php - 您需要授权访问才能继续