我有这个函数来执行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.
只是一个猜测..