所以我成功添加了不可见的 recaptcha,但我很好奇如果我在调用 grecaptcha.execute() 时以正确的方式执行此操作,其他人会怎么想
我在像这样进行显式调用后立即调用 grecaptcha.execute()
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback473&render=explicit"
async defer>
<script type="text/javascript">
var onloadCallback473 = function() {
widgetId_473 = grecaptcha.render('recaptcha_473', {
'sitekey' : 'MY KEY XXXXXXXXXXX',
'size' : 'invisible',
'badge' : 'inline', });
grecaptcha.execute(widgetId_473);
};
</script>
由于 ASYNC DEFER,该表单位于此下方
现在,当用户通过 AJAX 提交表单时,我有这样处理它的代码
'success': function(response) {
if (response.success) {
}
else {
//validation error
//Like blank fields, incorrect email requirements... etc
grecaptcha.reset(widgetId_473);
grecaptcha.execute(widgetId_473);
}
我的问题是“可以调用函数 grecaptcha.execute() 两次吗?”
就像点击提交按钮之前和错误部分之后一样?
最佳答案
从广义上讲,我在提交表单后立即调用 .execute() ,并将 ReCAPTCHA 字符串 key 与表单数据一起发送,以便后端可以有效地调用 google API 并在继续任何进一步的逻辑之前验证 ReCAPTCHA key 。
关于javascript - 使用 Invisible Captcha V2 时何时调用 grecaptcha.execute(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54603002/