gpt4 book ai didi

javascript - Google Recaptcha Ajax 响应奇怪的检查顺序

转载 作者:行者123 更新时间:2023-12-03 09:39:20 25 4
gpt4 key购买 nike

我正在为我的服务制作注册页面。我需要检查 Google 的 Recaptcha 是否已成功验证。我决定使用 jquery.ajax。

我创建了一个函数“checkCaptcha()”,它设置 isCAPT(如果验证码有效或无效)为 true (FLD_VALID) 或 false (FLD_EMPTY):

function checkCaptcha() {
alert("1");
var captcha_response_text = grecaptcha.getResponse();

var request = $.ajax({
url: "ajax/registrationA.php",
type: "post",
data: { captcha: true, captcha_response: captcha_response_text }
});

request.done(function (response, textStatus, jqXHR) {
alert("2");
if(response) {
isCAPT = FLD_VALID;
}
else {
isCAPT = FLD_EMPTY;
}
});
}

我不得不说“registrationA.php”工作正常。没有问题。

在此函数之后,我正在检查我的提交按钮处理“onclick”事件:

apply_button.onclick = function () {
checkCaptcha();
alert("3");
//alert("Капча " + isCAPT + " Логин " + isLOGIN + " Почта " + isMAIL + " Пароль " + isPASS + " Соответствие " + isPAS2);
return false;
};

您可以看到三个“alert(...)”运算符。问题是,当我按下提交按钮 (apply_button) 时,我收到三个警报:1、3、2。我该如何解决此问题。我需要等到“requiest.done”执行,然后才转到“alert("3")”。这是至关重要的,因为现在此函数在检查验证码状态之前先检查字段,这会导致错误,因为在本例中 isCAPT 等于 false

请帮我解决这个问题。也许有更好的方法来检查验证码是否已验证(也许有一个像“grecaptcha.isVerified”这样的函数)。

最佳答案

您需要检查deferred.promise()方法才能处理异步数据。检查JQ documentation为了那个原因。简而言之,它完全满足您的需要。它允许等到第二个异步请求完成并启动 3d 函数。

关于javascript - Google Recaptcha Ajax 响应奇怪的检查顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com