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会引发正确的错误,如果我更改密码,也会发生同样的错误。
想你错过添加你得到响应。 –
对不起,我把响应放在最后,而不是旁边的“响应:”行。 – JRivera294