谷歌验证码在重置时抛出错误

Google Recaptcha throwing errors on reset

本文关键字:出错 错误 验证 谷歌      更新时间:2023-09-26

我正在尝试让Google Recaptcha在我的一个网站上工作,但我遇到了一些问题。我正在遵循此处的文档并使用显式渲染函数来创建 recaptcha 小部件。

包含验证码的表单可以重复使用,而无需重新加载页面。换句话说,当有人首次成功提交表单时,表单会折叠并显示一个按钮,允许用户再次使用该表单。

单击此按钮时,我在 JS 中调用重置函数以使验证码再次工作。可以在此处找到此函数的详细信息。调用重置函数时,控制台中会出现此错误;

错误:访问属性"10_1417377045946"的权限被拒绝

之后,当有人尝试使用验证码时,会弹出以下错误:

http://google.com 的页面说:联系验证码服务时出错。

有人可以帮我找到解决这个问题的方法吗?谢谢

如果您需要重置/重新加载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。然后我尝试将其设置为无,并在不使用间隔的情况下直接返回到源,但这也没有刷新帧。

最后,结合间隔,它可以很好地刷新,并且我没有收到使用重置命令获得的"拒绝访问"错误。

谢谢休伦!

是一个笑话,谷歌做了一个错误的东西,你可以使用build在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);
    });
}
相关文章: