2016-02-17 117 views
0

我试图通过AJAX发送的ReCaptcha键,一切都似乎是好的,但由于某些原因,PHP验证码SDK不会返回错误,但响应是不成功的。谷歌验证码不返回错误

这是我的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没有错误这个问题。

如果有人有类似的问题,检查部位和秘密密钥是完整的,从验证码管理面板以及复制。