2016-02-17 2 views
0

Я пытаюсь отправить ключ recaptcha через AJAX, все выглядит нормально, но по какой-то причине PHP-recaptcha sdk не возвращает ошибок, но ответ не увенчался успехом.Google ReCaptcha не возвращает ошибки

Вот мой PHP код:

запрос
$recaptcha = new \ReCaptcha\ReCaptcha($user->secret); 
     $resp = $recaptcha->verify($data['g-recaptcha-response'], request()->ip()); 

    if ($resp->isSuccess()) { 
     //Success 
    }else{ 
     return response()->json([ 
      'message' => 'Recaptcha error', 
      'errors' => $resp->getErrorCodes(), 
     ], 401); 
    } 

Ajax:

$.ajax({ 
    type: 'POST', 
    url: 'http://localhost/endpoint', 
    datatype: 'json', 
    cache: false, 
    data: { 
     email: document.getElementById('register_email').value, 
     password: document.getElementById('register_password').value, 
     password_confirmation:document.getElementById('register_re_password').value, 
     first_name:document.getElementById('register_first').value, 
     last_name:document.getElementById('register_last').value, 
     'g-recaptcha-response': grecaptcha.getResponse(widgetId2) 
    }, 
    success: function(result) { 
     window.alert('Success'); 
     grecaptcha.reset(widgetId2); 
    }, 
    error: function(result) { 
     window.alert(result.responseJSON); 
    } 
}); 

И ответ:

{message: "Recaptcha error", errors: []} 

Секрет работает, потому что если я ставлю недопустимый g- recaptcha-response он вызывает правильную ошибку, то же самое происходит, если я изменяю секрет.

+0

Думаете, вы пропустили добавление ответа, который вы получали. –

+0

Извините, я положил ответ в конце, а рядом с строкой «И ответ:». – JRivera294

ответ

0

Проблема была плохой ключ сайта, по какой-то причине SDK не имеет ошибки к этой проблеме.

Если у кого-либо есть аналогичная проблема, проверьте, что сайт и секретный ключ завершены и хорошо скопированы с панели администратора ReCaptcha.