使用隐形验证码V2时何时调用grecaptcha.execute()

时间:2019-02-09 03:53:30

标签: javascript ajax recaptcha invisible-recaptcha

所以我成功添加了不可见的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()可以吗?”

就像在点击“提交”按钮之前以及在“错误”部分之后一样?

1 个答案:

答案 0 :(得分:1)

广义上讲,我在提交表单后立即调用.execute(),并将ReCAPTCHA字符串密钥与表单数据一起发送,以便后端可以有效地调用google API并验证ReCAPTCHA密钥,然后再进行任何进一步的逻辑处理。