2013-08-28 10 views
2

Я хочу добавить captcha внутри диалогового окна. Это первый раз, когда я использую капчу в своем пороидеКак добавить Captcha в проект GWT?

Captcha Widget не загружается.

Я использовал 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 

UPDATE:

В браузере, когда я проверяю его с помощью firbug, на консоли отображается ошибка в получении conten т. Сообщение об ошибке показано в 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"> 

Когда я создал образец проекта, он был там.

UPDATE 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, мой url проекта равен https://domain/index.html, поэтому защищенный контент блокирует небезопасный контент. см. Мой протокол передачи текста защищен (https), но recaptcha_ajax.js URL небезопасен (http).

Решение: Так что для того, чтобы это исправить, я должен изменить небезопасный URL-адрес на защищенный.

отредактируйте файл gwt.xml в файле gwt-captcha.jar. [оригинальный]

<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> 

Спасибо.