新的 ReCaptcha(不可见)不工作
New ReCaptcha (invisible) not working
我正在尝试实施新的不可见 reCaptcha,但它不起作用。
首先,万事大吉 我用 "invisible" 选项创建了一个新密钥,更改了我的应用程序中的密钥,当我查看我的控制台时,我可以看到这个请求:
https://www.google.com/recaptcha/api2/anchor?k=.....
我认为这不正确api,对吧?
我的导入部分代码是这样的:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
根据文档,这是正确的...
其次,我选择将验证码放在 div 中(根据文档,这没问题):
<div id="captchaSignup"
class="g-recaptcha"
data-size="invisible" data-badge="inline"></div>
我也在使用渲染函数来声明回调和站点密钥:
grecaptcha.render(document.getElementById('captchaSignup'), {
'sitekey' : '...',
'callback' : function(response) {$rs.validCaptcha=response;$s.$apply()}
});
这可以用作验证码解决方案,但不能用作不可见的解决方案,因为它仍在显示框。我知道我还必须使用执行功能,但由于我仍然看到该框,我想我还没有进入那个阶段。有人可以帮助我吗?
在 "invisible" recaptcha 的情况下,grecaptcha.render()
api 采用名为 inherit
的可选第三个布尔参数,默认为 false
。如果它的值指定为 true
,只有 recaptcha 使用 .g-recaptcha
元素上现有的 data-* 属性用于未在 render()
的选项中指定的参数,否则它会视为缺少参数.
由于您没有将此参数与 true
值一起传递,它永远不会读取您在 HTML 元素上拥有的 data-size="invisible"
值,从而继续将其呈现为可见的 recaptcha .
试试这个:
grecaptcha.render(document.getElementById('captchaSignup'), {
'sitekey' : '...',
'callback' : function(response) { ... }
}, true); // <-- this is the change. Pass "true" here
我正在尝试实施新的不可见 reCaptcha,但它不起作用。
首先,万事大吉 我用 "invisible" 选项创建了一个新密钥,更改了我的应用程序中的密钥,当我查看我的控制台时,我可以看到这个请求:
https://www.google.com/recaptcha/api2/anchor?k=.....
我认为这不正确api,对吧?
我的导入部分代码是这样的:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
根据文档,这是正确的...
其次,我选择将验证码放在 div 中(根据文档,这没问题):
<div id="captchaSignup"
class="g-recaptcha"
data-size="invisible" data-badge="inline"></div>
我也在使用渲染函数来声明回调和站点密钥:
grecaptcha.render(document.getElementById('captchaSignup'), {
'sitekey' : '...',
'callback' : function(response) {$rs.validCaptcha=response;$s.$apply()}
});
这可以用作验证码解决方案,但不能用作不可见的解决方案,因为它仍在显示框。我知道我还必须使用执行功能,但由于我仍然看到该框,我想我还没有进入那个阶段。有人可以帮助我吗?
在 "invisible" recaptcha 的情况下,grecaptcha.render()
api 采用名为 inherit
的可选第三个布尔参数,默认为 false
。如果它的值指定为 true
,只有 recaptcha 使用 .g-recaptcha
元素上现有的 data-* 属性用于未在 render()
的选项中指定的参数,否则它会视为缺少参数.
由于您没有将此参数与 true
值一起传递,它永远不会读取您在 HTML 元素上拥有的 data-size="invisible"
值,从而继续将其呈现为可见的 recaptcha .
试试这个:
grecaptcha.render(document.getElementById('captchaSignup'), {
'sitekey' : '...',
'callback' : function(response) { ... }
}, true); // <-- this is the change. Pass "true" here