Javascript 不可见的recaptcha-挑战未出现

Javascript 不可见的recaptcha-挑战未出现,javascript,jquery,invisible-recaptcha,Javascript,Jquery,Invisible Recaptcha,在动态生成的表单上实现不可见的reCAPTCHA。我们的from引擎从数据库中获取一个字段列表,并用表单字段动态填充DOM,显示它,并处理post。要使用不可见的reCAPTCHA,请执行以下操作: recaptcha_id = grecaptcha.render("g-recaptcha-div", { 'data-callback': _settings.form.submit,

在动态生成的表单上实现不可见的reCAPTCHA。我们的from引擎从数据库中获取一个字段列表,并用表单字段动态填充DOM,显示它,并处理post。要使用不可见的reCAPTCHA,请执行以下操作:

recaptcha_id = grecaptcha.render("g-recaptcha-div", 
                   { 
                     'data-callback': _settings.form.submit,
                     'sitekey'      : <my site key>
                   }, true 
                 );
当我的页面加载完成时,我正在加载google api代码:

<script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>
在这一点上,我希望挑战会突然出现。但事实并非如此。嗯,曾经有过。我的表单提交到我的PHP后端,其中有一个用于g-recaptcha-response的参数,但它是空的。挑战出现的那一次,g-recaptcha-response中有一个值

当调用execute函数时,挑战是否总是出现?如果不是,那么我们应该如何处理空响应值

谢谢,
安迪

好的,对于那些在家里跟随的人:

1) 是的,您可以在对grecaptcha.render的调用中指定回调函数的名称。深入查看,我注意到在本页()中,我需要指定函数的名称,如下所示:

recaptcha_id = grecaptcha.render("g-recaptcha-div", 
                                  { 
                                    'sitekey'  : <my site key>,
                                    'callback' : <callback>
                                  }, true 
                                );
recaptcha\u id=grecaptcha.render(“g-recaptcha-div”,
{ 
“sitekey”:,
“回调”:
}是的
);

我试图使用“数据回调”,这是如何在HTML中指定它的。啊!为了回答我的另一个问题,一旦您正确地执行了此操作,无论是否呈现质询,都会使用令牌调用回调。

此时,我希望质询会弹出。UH如果它已经确定你不是机器,它不会尝试验证你。。无论何时调用submit,都需要调用
grecaptcha.execute()
,尽管
g-recaptcha-response
为空很奇怪。当你尝试时,你不是离线的吧?浏览器控制台上没有红色,对吗?没有,看起来没有问题。因此,如果我理解您的意思,如果我调用recaptcha.execute,并且recaptcha决定不发起质询,那么g-recaptcha-response中仍然应该有一些内容?好的,我已经取得了进展,我现在可以随意显示质询(请参阅),但是-我无法让它调用我的回调。在我的阅读资料中,似乎我应该能够在grecatha.render调用中指定回调-true还是nottrue?目前看来,这似乎不是真的。
grecaptcha.execute(recaptcha_id);
recaptcha_id = grecaptcha.render("g-recaptcha-div", 
                                  { 
                                    'sitekey'  : <my site key>,
                                    'callback' : <callback>
                                  }, true 
                                );