2

我想在对话框中添加验证码。这是我第一次在我的项目中使用验证码

验证码小部件未加载。

我使用gwt-recaptcha-1.0.0.Beta2.jar这个插件在客户端显示它。并且公钥是通过givinmg URL example.com生成的,

我还包括以下脚本及其文件:

<script language="JavaScript" type="text/javascript"
    src="/js/jquery-1.10.2.min.js"></script>
<script language="JavaScript" type="text/javascript"
    src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript"
    src="/js/sprinkle.js"></script>

以下是错误来

com.google.gwt.event.shared.UmbrellaException: Exception caught: Exception caught: Exception caught: (TypeError) @com.claudiushauptmann.gwt.recaptcha.client.Recaptcha::create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)([string: '6LcTueYSAAAAAHPQtHZgAULhzRiawknYecvkKokU', string: 'recaptcha_div', string: 'red', string: 'en', int: 0]): $wnd.Recaptcha is undefined

更新:

在浏览器中,当我使用 firbug 检查它时,控制台在检索内容时显示错误。firebug 控制台中显示的错误消息是:

Blocked loading mixed active content "http://api.recaptcha.net/js/recaptcha_ajax.js"

运行项目后,我希望在我的 html 页面中出现如下代码,但丢失了。

 <script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6LdeueYSAAAAAKhH5DTUxAv5415DZBgp5cuf0Rmd&ajax=1&cachestop=0.992938555511717&lang=en">

当我创建一个示例项目时,它就在那里。

更新 2 响应是:

var RecaptchaState = {'programming_error' : 'Input error: Invalid referer'};
4

1 回答 1

1

嗨,我弄清楚究竟是什么问题......

第一条错误消息是:

 com.google.gwt.event.shared.UmbrellaException: Exception caught: Exception caught: 
 Exception caught: (TypeError)   
 @com.claudiushauptmann.gwt.recaptcha.client.Recaptcha::
 create(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)
 ([string: '6LcTueYSAAAAAHPQtHZgAULhzRiawknYecvkKokU', string: 'recaptcha_div', 
 string: 'red', string: 'en', int: 0]): 
 $wnd.Recaptcha is undefined

之所以显示这只是因为,从客户端 gwt-captcha 组件尝试调用中的功能recaptcha_ajax.js,但它不可用。

当我检查更多时,使用firebug的客户端网页显示一条错误消息:

Blocked loading mixed active content "http://api.recaptcha.net/js/recaptcha_ajax.js"

所以这就是第一个错误消息的原因。

现在是什么让我的项目阻止访问这个 js url 是,我的项目 url 是https://domain/index.html,所以安全的内容阻止了不安全的内容。看到我的文本传输协议是安全的(https),但 recaptcha_ajax.js url 是不安全的(http)。

解决方案: 所以为了解决这个问题,我必须将不安全的 url 更改为安全的。

编辑 gwt-captcha.jar 文件中的 gwt.xml 文件。[原创]

 <module> 
        <inherits name="com.google.gwt.user.User"/> 
        <script src="**http://**api.recaptcha.net/js/recaptcha_ajax.js"/> 
 </module>

到[编辑]

<module> 
        <inherits name="com.google.gwt.user.User"/> 
        <script src="**https://**api.recaptcha.net/js/recaptcha_ajax.js"/> 
</module>

谢谢。

于 2013-09-02T04:15:11.283 回答