我有编程方法,一旦我点击提交按钮,页面永远不会显示加载的迹象。我只看到徽章无限重装,我的控制台显示重复加载的相同资源,一旦达到显然reCAPTCHA认为我是机器人垃圾邮件并让我解决验证码的点,我解决它们并再次重复该过程,它永远不会结束。
这是我的代码基于此答案HTML5 form validation before reCAPTCHA's:
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src='https://www.google.com/recaptcha/api.js' async defer></script>
...
<form id='login' role='form' method='post'>
<div class="form-group">
<label for='form-user'>Username</label>
<input type='text' class='form-control' id='form-user' name='form-user' placeholder='Username' required>
</div>
<div class="form-group">
<label for='form-password'>Password</label>
<input type='password' class='form-control' id='form-password' name='form-password' placeholder='Password' required>
</div>
<div class='g-recaptcha' data-sitekey='my-key' data-size='invisible' data-callback='onSubmit'></div>
<input type='submit' value='Sign In' name='submit-btn' class='btn btn-default'>
</form>
<script>
$('#login').submit(function (event) {
event.preventDefault();
grecaptcha.reset();
grecaptcha.execute();
});
function onSubmit(response) {
$('#login').submit();
}
</script>
可能发生什么以及如何解决?我正在使用已禁用verify the origin of reCAPTCHA solutions
的localhost。
提前致谢
答案 0 :(得分:0)
验证码验证在执行onSubmit
函数之前进行。这意味着首先要进行验证码验证,然后提交表单,然后再次重置验证码,然后grecaptcha.execute()
再次调用onSubmit
函数。再三,一而再再而三。
我不知道您的验证在哪里,但是对于所提供的代码,您只想摆脱那些额外的重新验证执行,因此$('#login').submit()
在这里不是必需的。