2014-04-15 2 views
0

Я использую следующий плагин https://github.com/VividCortex/angular-recaptcha, чтобы использовать recaptcha в форме входа.Recaptcha angularjs проверить ответ пользователя

Я использую следующий код для проверки

$http({ 
      url: 'https://www.google.com/recaptcha/api/verify', 
      method: 'POST', 
      params: {privatekey: "key", remoteip: "userip", challenge: "challenge", response: "user_answer" }, 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }).success(function(data) { 
      console.log(data); 
      if (valid) { 
       console.log('Success'); 
       alert('Success'); 

      } else { 
       console.log('Failed validation'); 
       alert('Fail'); 

       // In case of a failed validation you need to reload the captcha because each challenge can be checked just once 
       //vcRecaptchaService.reload(); 
      } 

     }); 

Но сервер Google это ничего не возвращает. Я обновил код, но не повезло.

ответ

0

Я думаю, что у вас есть опечатка в коде:

post: 'GET' 

Изменить что method: 'GET' или method: 'POST'.
Вы можете проверить angular documentation on http, чтобы убедиться, что вы написали все параметры справа.

Если это не послужит источником ваших проблем, вы должны разместить более подробную информацию о своей проблеме (что вы видите в консоли вашей сети, например).

+0

спасибо! проверить обновленные версии – user3428228

+0

Заголовки запросов Accept \t приложения/JSON, текст/равнина, */* Accept-Encoding \t GZIP, выкачать Accept-Language \t EN-US, ан; д = 0,5 Хост \t www.google. ком Origin \t http://mydomain.com Referer \t http://mydomain.com/myapp/ User-Agent \t Mozilla/5.0 (Windows NT 6.3; WOW64; с.в.: 28,0) Gecko/20100101 Firefox/28.0 – user3428228

0

Имейте в виду, что проверка верности должна выполняться на стороне сервера. Я не уверен на 100%, что вы делаете это в браузере, но ваш код выглядит так.

0

Как утверждал Мигель Триас, вы не должны проверять непосредственно из клиента angularjs/javascript, вместо этого вы должны отправить запрос и поле ответа на свой сервер и затем проверить.

Поэтому вы можете использовать uri, который вы использовали (https://www.google.com/recaptcha/api/verify), или плагин, например. если вы используете php, см. https://developers.google.com/recaptcha/docs/php. Я бы предпочел плагин, потому что он сохранит работу.

Кроме того, имейте в виду, что ваш закрытый ключ не должен использоваться в клиенте, поэтому он называется частным. Он используется только для связи между сервером и серверами reCaptcha. Открытый ключ используется для связи между вашим клиентом и серверами reCaptcha. Для получения дополнительной информации читайте Overview

Смежные вопросы