[英]Google Recaptcha throwing errors on reset
我正在尝试让Google Recaptcha在我的一个网站上运行,但遇到一些问题。 我在这里关注文档,并使用显式渲染功能创建Recaptcha小部件。
包含验证码的表单可以重新使用,而无需重新加载页面。 换句话说,当某人首次成功提交表单时,它会折叠并显示一个按钮,允许用户再次使用该表单。
单击此按钮后,我调用JS中的reset函数以使验证码再次起作用。 可以在此处找到此功能的详细信息。 调用reset函数时,此错误将出现在控制台中。
错误:拒绝访问属性“ 10_1417377045946”的权限
之后,当有人尝试使用验证码时,会弹出以下错误:
http:// google.com上的页面显示:与Recaptcha服务联系时发生错误。
有人可以帮我找到解决此问题的方法吗? 谢谢
如果您需要重置/重新加载Google reCAPTCHA,请使用grecaptcha.reset();
(这不会引发任何错误。)
在我自己的网站上实施此错误时遇到了相同的错误。 这是我使用的解决方法:
我已经为保存重新验证码的div添加了一个ID,如下所示:
<div id="recaptcha" class="g-recaptcha" data-sitekey="my_key"></div>
当我需要重新加载验证码时,我使用这段JavaScript:
var recaptchaframe = $('#recaptcha iframe');
var recaptchaSoure = recaptchaframe[0].src;
recaptchaframe[0].src = '';
setInterval(function () { recaptchaframe[0].src = recaptchaSoure; }, 500);
首先,我尝试再次将src直接设置为自身,但这并没有刷新iframe。 然后,我尝试将其设置为空,然后不使用间隔直接返回源,但这也没有刷新框架。
最后,结合时间间隔,它可以很好地刷新,并且我没有收到通过reset命令获得的“访问被拒绝”错误。
THX休伦!
这是个笑话,谷歌制造了一个越野车,您可以使用build in reset()方法。
另外,他们不写任何行表示该窗口小部件只能处理一个请求,因此AJAX用户请抬头,请使用reset()!
但是不要使用reset()! 使用@huron的代码。
顺便说一下,@ huron的代码仅适用于一个小部件,这里适用于多个小部件:
var $recaptcha = $('.g-recaptcha iframe');
if ($recaptcha.length) {
$recaptcha.each(function () {
var $this = $(this),
recaptchaSoure = $this[0].src;
$this[0].src = '';
setInterval(function () { $this[0].src = recaptchaSoure; }, 500);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.