所以我在我的页面上使用了一个不可见的 reCaptcha,并且我正在使用该error-callback
功能向用户报告错误。麻烦的是,每当遇到错误回调时,它就会陷入无限循环。我通过强制 sitekey 不正确来触发“错误”,我不确定这是否相关,但我需要一种强制 recaptcha 击中此回调的好方法以进行测试和开发目的。
这是一个工作小提琴:https ://jsfiddle.net/gbpmd0y5/
这是我用来诊断问题的示例代码:
<div id="cResults"></div>
<script type="text/javascript">
function submitHandler() {
var captchaTarget = 'cResults'
var shareCaptcha = window.grecaptcha.render(captchaTarget, {
sitekey: 'sitekey',
size: 'invisible',
callback: function(token) {},
'error-callback': function() {
console.log('error');
window.grecaptcha.reset(shareCaptcha);
}
});
window.grecaptcha.execute(shareCaptcha);
}
</script>
<button value="go" onclick="submitHandler()">Go</button>
<script src="https://www.google.com/recaptcha/api.js?" async defer></script>
如果你运行这段代码,你会看到右下角的 recaptcha 框会不断闪烁(就像它重新加载一样),如果你打开控制台,你会看到无限的error
消息流。
有任何想法吗?