我的用户很少会获得一个验证码,要求他们复制和粘贴一个代码,但是它总是会失败 – 而大多数用户可以正常访问(复选框).
谷歌搜索只返回三个人获得该验证码的人,其中没有任何有价值的信息
谷歌搜索只返回三个人获得该验证码的人,其中没有任何有价值的信息
任何想法,为什么他们得到该验证码,最重要的是为什么它失败?
解决方法
为什么会发生这种情况:
当客户端禁用JavaScript时,会发生这种情况.我们来看看下面的示例代码.
reCAPTCHA: Tips and Guidelines API文档的示例代码:
<script type="text/javascript" src="https://www.google.com/recaptcha/api/challenge?k=your_public_key"> </script> <noscript> <iframe src="https://www.google.com/recaptcha/api/noscript?k=your_public_key" height="300" width="500" frameborder="0"></iframe><br> <textarea name="recaptcha_challenge_field" rows="3" cols="40"> </textarea> <input type="hidden" name="recaptcha_response_field" value="manual_challenge"> </noscript>
我们可以看到,有noscript标签包含一个iframe,一个textarea和一个隐藏的输入.当JavaScript被禁用时,它将渲染noscript标签的内容,并且它将看起来像这样.
iframe包含用户可以输入验证码并提交表单的表单,iframe将在其上加载包含响应代码的新页面.由于JavaScript被禁用,将该令牌获取到父页面的形式的唯一方法是让用户将该令牌复制并粘贴到示例中的textarea中.
解决方法?:
只要用户正确地复制和粘贴令牌,它应该可以正常工作.仔细检查验证码的HTML是否包含正确的后备元素.您也可以在浏览器中禁用JavaScript以自行测试.