所以我成功添加了不可见的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()可以吗?”
就像在点击“提交”按钮之前以及在“错误”部分之后一样?
答案 0 :(得分:1)
广义上讲,我在提交表单后立即调用.execute(),并将ReCAPTCHA字符串密钥与表单数据一起发送,以便后端可以有效地调用google API并验证ReCAPTCHA密钥,然后再进行任何进一步的逻辑处理。