我在我的网站上使用Google的reCaptcha 2.0。它曾经运作良好,但自从我向公众开放我的网站并获得更多用户后,recaptcha不再适用于大多数用户..它加载正常,但一旦用户点击“我不是机器人”复选框,它会永远加载,永远不会返回确认。
我试图在网上查找它,但找不到有类似问题的人,我不知道如何(或者我可以)调试它,因为显然它没有返回谷歌的回复。我所有的钥匙都是正确的。
有人可以帮帮我吗?我的网站是www.heropanel.com - 要模拟它,点击页面底部的联系人,然后点击“我不是机器人”复选框。
答案 0 :(得分:4)
其实我找到了答案。验证码在一个模态弹出div中加载。加载此弹出窗口时,它会更改div的父级,并以某种方式破坏了验证码(可能是一些嵌入式安全代码)。我的解决方案是在窗口弹出后重新加载验证码。
答案 1 :(得分:3)
你的问题是:
<div class="g-recaptcha" data-theme="light"></div>
你缺少属性。正确的将是:
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="your_google_public_key"></div>
在使用Google验证码之前,您已创建 data-sitekey 。
在https://developers.google.com/recaptcha/docs/display和https://www.google.com/recaptcha/admin#createsite
了解详情答案 2 :(得分:0)
我有同样的问题。当我点击reCaptcha它只是加载而不给出响应。我发现大多数解决方案是重新加载reCaptcha,但它无法解决我的问题。最后我发现我使用bool类型变量&#39; length = false&#39;导致产生这个问题。我jsut更改变量名称并解决我的问题。
使用&#39; grecaptcha.reset();&#39;重新加载或重置reCaptcha。
请确保不要在脚本中使用任何保留字(如上所述)。
答案 3 :(得分:0)
切换到SSL后,我能够解决此问题 尽管即使在http下,桌面上的所有内容都可以正常工作。 移动Android reCaptcha未经批准继续旋转