【问题标题】:Google Recaptcha throwing errors on resetGoogle Recaptcha 在重置时抛出错误
【发布时间】:2015-04-07 22:36:52
【问题描述】:

我正在尝试让 Google Recaptcha 在我的一个网站上运行,但我遇到了一些问题。我正在关注文档here 并使用显式渲染函数来创建recaptcha 小部件。

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

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

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

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

http://google.com 上的页面显示:联系 recaptcha 服务时出错。

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

【问题讨论】:

  • 我也有同样的问题,你能解决吗?
  • 不,我无法修复它。如果您找到解决方案,请告诉我。
  • 我也无法解决这个问题。更改为另一个实现。
  • 你现在用的是哪一个?
  • 我现在正在使用这个:99points.info/2010/08/…

标签: javascript jquery captcha recaptcha


【解决方案1】:

如果您需要重置/重新加载 Google reCAPTCHA,只需使用 grecaptcha.reset();

(这不会引发任何错误。)

【讨论】:

    【解决方案2】:

    我在自己的网站上实现此功能时遇到了同样的错误。 这是我使用的解决方法:

    我已经向持有重新验证码的 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。然后我尝试将其设置为空并直接返回源而不使用间隔,但这也没有刷新帧。

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

    【讨论】:

      【解决方案3】:

      THX 休伦!

      开个玩笑,谷歌搞了个bug,你可以使用内置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);
          });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        相关资源
        最近更新 更多