【问题标题】:Google ReCaptcha doesn't return errorsGoogle ReCaptcha 不返回错误
【发布时间】:2016-05-29 05:54:49
【问题描述】:

我正在尝试通过 AJAX 发送 recaptcha 密钥,一切似乎都正常,但由于某种原因 php recaptcha 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 它会抛出正确的错误,如果我改变这个秘密也会发生同样的错误。

【问题讨论】:

  • 认为您错过了添加收到的回复。
  • 抱歉,我把响应放在最后,而不是在“And response:”行旁边。

标签: php ajax laravel-5.1 recaptcha


【解决方案1】:

问题是一个错误的站点密钥,由于某种原因,SDK 对此问题没有错误。

如果有人遇到类似问题,请检查网站和密钥是否完整,并从 ReCaptcha 管理面板正确复制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2016-10-13
    • 2022-12-06
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多