谷歌reCAPTCHA V.2在firefox中工作但不在chrome中工作

时间:2015-05-27 16:49:39

标签: google-chrome firefox recaptcha

我在我的网站上使用谷歌reCAPTCHA V.2,该网站运行在MAMP服务器的本地主机上。 我正在正确地进行所有小部件集成(在frontEnd和服务器端),证明小部件在firefox 38.0.1上正确显示并且验证工作顺利 http://imgur.com/cm83p39 但它在chrome上显示奇怪 http://imgur.com/KHC7hMN

毋庸置疑,我正在做所有需要做的事情。同样,证据是它在firefox中工作,但不在chrome中... 没有详细说明,在HTML中页面看起来像这样:

<!DOCTYPE html>
<html>
 <head>
  <title>reCAPTCHA demo</title>
  <script src='https://www.google.com/recaptcha/api.js?hl=en'></script>
 </head
 <body>
  <form id='reCaptcha' action='myValidationScript.php' method='POST'>
   <div class="g-recaptcha" data-sitekey="myKey">
   </div>
   <input type='submit'>
  </form>
 </body>
</html>

问题不在服务器上,我在PHP中用来进行验证的代码看起来像这样(再次,不再详述)。

<?php
 if(isset($formFields['g-recaptcha-response']))
 {$captcha=$formFields['g-recaptcha-response'];}
 $secretCaptchaKey='mySecretKey';
 $response=file_get_contents(
   "https://www.google.com/recaptcha/api/siteverify?secret=$secretCaptchaKey&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']
        );
 $response = json_decode($response, true);
 if($response["success"]==true){echo('yay!!')}
 else{echo('nay')}
 ?>

我在网上看到的最接近的答案来自Google的常见问题解答,其中他们讨论了“no_checkbox”问题,说我的客户端没有必要的资源来加载小部件,而且它又回到了另一个挑战。但他们放在那里的例子(带有文字的图像)远非我在铬中得到的丑陋文本......

再次,请理解这没有服务器问题,证明它适用于firefox ... 有关信息,我过去遇到了完全相同的问题,我通过升级浏览器解决了这个问题。现在我再次使用chrome ... 任何想法?

1 个答案:

答案 0 :(得分:0)

我在这里遇到了类似的问题:reCAPTCHA在Firefox(51.0.1)中完美运行并显示消息&#34;站点密钥无效域&#34;在Chromium(55.0.2883.87)。

解决方法是禁用&#34;验证reCAPTCHA解决方案的来源&#34;我的域的reCAPTCHA配置中的复选框,使reCAPTCHA在Chrome中运行。

当然,这不是一个可持续的解决方案。经过进一步调查,我发现这个问题是由德国&#34; Umlaut&#34;我的域名中的字符。要解决它,我只需要将我的域的Punycode添加到reCAPTCHA配置。