【问题标题】:How to add Captcha on GWT project?如何在 GWT 项目中添加验证码?
【发布时间】:2013-08-28 10:59:21
【问题描述】:

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

验证码小部件未加载。

我使用 gwt-recaptcha-1.0.0.Beta2.jar 这个插件在客户端显示它。 而公钥是通过给出 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'};

【问题讨论】:

  • 我通过提供正确的域名来生成密钥解决了这个问题。

标签: java javascript gwt captcha


【解决方案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>

谢谢。

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2011-07-11
    • 2011-03-03
    相关资源
    最近更新 更多