我有以下 Jquery 代码,它监听用户输入验证码并在每个键上发送一个 ajax 请求以查看是否输入了正确的代码:
$('#joinCaptchaTextBox').keyup(function() {
$.get('scripts/ajax/script.php', {
'join_captcha': '1',
'captcha': $('#joinCaptchaTextBox').val()},
function(data) {
var obj = JSON.parse(data);
if(obj.ajaxResponse.status) {
$('#joinCaptchaNotAcceptable').hide();
$('#joinCaptchaAcceptable').show();
}else{
$('#joinCaptchaAcceptable').hide();
$('#joinCaptchaNotAcceptable').show();
}
});
});
另一端的 PHP 脚本只是检查会话并回复:
if($siteCaptcha == $_SESSION['secretword']) {
$this->captchaCompare = TRUE;
}else{
$this->captchaCompare = FALSE;
}
这在 95% 的情况下都可以正常工作,但我发现有时它会报告输入的验证码不正确,即使它是正确的。我认为这可能是因为当快速键入时,许多请求被发送到服务器,而返回的订单或请求不是发送的订单,因此(因为只有一个是正确的)最后收到前一个并显示不正确。
有一个更好的方法吗?有没有办法确保最后收到的最后一个请求?有什么我在这里想念的吗。我可以提供更多信息。
谢谢你