我想在对话框中添加验证码。 这是我第一次在我的项目中使用验证码
验证码小部件未加载。
我使用了 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'};
最佳答案
您好,我知道问题出在哪里了...
第一条错误信息是:
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 的客户端网页显示错误消息:
阻止加载混合 Activity 内容“http://api.recaptcha.net/js/recaptcha_ajax.js”
这就是第一条错误消息的原因。
现在让我的项目阻止访问这个 js url 的是,我的项目 url 是 https://domain/index.html
,所以安全的内容阻止了不安全的内容。
看到我的文本传输协议(protocol)是安全的 (https),但 recaptcha_ajax.js url 是不安全的 (http)。
解决方法: 因此,为了解决这个问题,我必须将不安全的 url 更改为安全的 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>
谢谢。
关于java - 如何在 GWT 项目中添加验证码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486025/