【问题标题】:Google Recaptcha - GetResponse not returning JSONGoogle Recaptcha - GetResponse 不返回 JSON
【发布时间】:2014-11-20 10:13:43
【问题描述】:

我一直在为我们的网站实现一个新的登录页面,其中一个要求是在表单中的两个元素上包含 recaptcha(一个用于注册,另一个用于获取用户名/密码提醒) .

我已经设法让两个recaptchas 正常工作,并且它们都正常工作。但是,当我尝试使用 recaptcha.getResponse() 或使用 recaptcha.render('callback') 方法时,它不会返回 JSON,尽管在规范中这样说。这是一点

响应是一个 JSON 对象

{
    "success": true|false,
    "error-codes": [...]   // optional
}

我在返回的数据中没有得到任何类似的东西。相反,它看起来 Base64 编码,但我尝试过的任何解码器都失败了。看起来是这样的

03AHJ_VuvWh4kgzEcKC_TBcc_BQjLucuL6g5tKXwYJT...(之后还有很多)

这是我做recaptchas 的代码。它可能看起来很乱,但这只是原型设计。谁能看到我做错了什么?我想我完全遵循了规范。

HTML(为简洁起见)

<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>

<div id="div_signup_recaptcha"></div>
<div id="div_forgotdetail_recaptcha"></div>

JS/jQuery

var grecaptchaSignup, grecaptchaForgotDetail;
var verifyForgotDetailCallback = function (response) {
    console.log(response);
}

var verifySignupCallback = function (response) {
    console.log(response);
}

var onloadCallback = function () {
    grecaptchaSignup = grecaptcha.render('div_signup_recaptcha', {
        'sitekey': 'mykey',
        'callback': verifySignupCallback
    });
    grecaptchaForgotDetail = grecaptcha.render('div_forgotdetail_recaptcha', {
        'sitekey': 'mykey',
        'callback': verifyForgotDetailCallback
    });
};

【问题讨论】:

    标签: javascript jquery html json recaptcha


    【解决方案1】:

    好吧,我是个白痴。

    我以为我已经正确阅读了规范,结果我错过了对该 URL 的基本调用

    https://www.google.com/recaptcha/api/siteverify?secret=your_secret&response=response_string&remoteip=user_ip_address

    在我插入我的私钥和编码响应后,我得到了我的 JSON 对象。

    希望这可以为我所在位置的其他人消除任何困惑:(

    【讨论】:

    • 这个网址怎么称呼?据我了解,javascript API 应该自动返回这个 json
    猜你喜欢
    • 2016-10-13
    • 2022-12-06
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2017-10-08
    相关资源
    最近更新 更多