2013-08-28 73 views
2

我想在对话框中添加验证码。 这是我第一次在我的poroject中使用captcha如何在GWT项目中添加Captcha?

验证码控件未加载。

我用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'}; 
+0

我通过给出正确的域名来生成密钥来解决这个问题。 – Dipak

回答

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中的功能,并且它不可用。

当我检查多,使用萤火客户端的网页已显示一条错误消息:

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

因此,这是第一个错误消息的原因。

现在是什么让我的项目块访问这个JS网址是,我的项目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> 

感谢。