我在我的网站上使用谷歌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 ... 任何想法?
答案 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配置。