Javascript 不可见的Recaptcha-未加载站点密钥?

Javascript 不可见的Recaptcha-未加载站点密钥?,javascript,invisible-recaptcha,Javascript,Invisible Recaptcha,更新,因为我已将实现更改为(某种程度上)更成功的实现 我正试图在我们的系统中实现隐形的Recaptcha。我们使用的是动态生成的表单,因此,我将以编程方式调用挑战。我有以下代码来获取API: <script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script> 绘制表单时,我将调用渲染函数: recaptcha_id = grecaptcha.render

更新,因为我已将实现更改为(某种程度上)更成功的实现

我正试图在我们的系统中实现隐形的Recaptcha。我们使用的是动态生成的表单,因此,我将以编程方式调用挑战。我有以下代码来获取API:

 <script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>
绘制表单时,我将调用渲染函数:

recaptcha_id = grecaptcha.render(
    'g-recaptcha-div',
    {
        'data-callback': _settings.form.submit
    }
);
当表单出现时,“受reCAPTCHA保护”徽标框显示在我的提交按钮上

在提交函数中,我执行一些表单验证,然后“执行”reCaptcha:

grecaptcha.execute(recaptcha_id);
然后继续我的提交。到目前为止,我已经看到了reCaptcha挑战(“用店面挑选图像”),此时
g-reCaptcha-response
值被插入到我的表单提交中,我在传递给我的
PHP
函数的参数中看到了它

但是,大多数时候我看不到挑战,并且
g-recaptcha-response
参数中没有任何内容,因此我的
PHP
验证失败。有几个问题:

1) 我的假设是,谷歌的逻辑只有在“条件合适”的情况下才需要挑战。如果是这种情况,当它没有出现时,我该怎么办?在这一点上,
g-recaptcha-response
参数是没有值的-我是否在这一点上忽略它,假设没有值表示ok

2) 有没有办法“强迫”挑战出现,哪怕只是为了让我对整个过程感觉更好,并测试我对回应的处理能力

3) 我曾尝试在
grecaptcha.execute(recaptcha\u id)
之后调用
grecaptcha.getResponse(recaptcha\u id)
,但没有返回任何内容。对我来说,在我的客户机中处理reCaptcha会更容易/更好

任何答案都将不胜感激。我可能会把这个作为一个新的“问题”重新提交,因为这个问题已经存在了一段时间

grecaptcha.execute(recaptcha_id);