繁体   English   中英

Google Recaptcha重置时引发错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM