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