标题中的错误仅在 firebug 中可见。我将recaptcha元素放在下面的所有内容都没有显示在页面上,但存在于页面源(Mozilla和Opera)中 - 尽管firebug中没有显示错误。
到目前为止,基于其他解决方案,我已经尝试反转密钥(公共和私有,尽管它们被明确标识),生成全局密钥对并使用它们,甚至将值硬编码到 recaptcha.rb 初始化程序中文件与使用系统变量。在开发或生产中的任何情况下都没有运气。还尝试抑制“noscript”部分,没有任何变化。
Gem 生成的页面源代码如下:
<script type="text/javascript" src="//www.google.com/recaptcha/api/challenge?k=[" mypublickeyhere", "myprivatekeyhere", false]&lang="></script>
<noscript>
<iframe src="//www.google.com/recaptcha/api/noscript?k=["mypublickeyhere", "myprivatekeyhere", false]" height="300" width="500" style="border:none;"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/></noscript>
为什么我的私钥在页面源中可见?所有这些代码都来自于我的观点:
<%= recaptcha_tags %>
编辑:通过强制输入表单和控制器中的键,在几个小时内取得了一些进展:
<%= recaptcha_tags :public_key => 'mypublickeyhere' %>
和
if ( verify_recaptcha :private_key => 'myprivatekeyhere' )
这让 recaptcha 显示在表单上,并防止我的私钥像在“默认”模式下那样被插件发送到页面代码中。
不幸的是,即使验证码输入正确,我们也会收到一个新错误,“invalid-request-cookie”。
是否有在 Rails 3 中使用此插件的单个示例,具有完整的工作形式和控制器代码?
其他患者的更多信息:
谷歌说这个错误的意思是:“验证脚本的挑战参数不正确。”
在另一个页面上,如果您搜索“挑战参数”以找出任何内容,Google 会说:“recaptcha_challenge_field 是一个隐藏字段,用于描述用户正在解决的验证码。它对应于reCAPTCHA 验证 API。”
那么为什么插件没有提供正确的挑战参数呢?也许我需要在某个地方传递一些东西——但是什么和在哪里?同样,一个简单的例子会很棒。