我一直在为我们的网站实现一个新的登录页面,其中一个要求是对表单中的两个元素进行重新验证(一个用于注册,另一个用于获取用户名/密码提醒) .
我已经设法使两个重新验证工作正常,并且它们都正常运行。但是,当我尝试使用 recaptcha.getResponse() 或使用 recaptcha.render('callback') 方法时,它不会返回 JSON,尽管在规范中这样说。这是一点
The response is a JSON object
{
"success": true|false,
"error-codes": [...] // optional
}
我在返回的数据中没有得到任何类似这样的远程信息。相反,它看起来 是 Base64 编码的,但我试过的任何解码器都失败了。看起来像这样
03AHJ_VuvWh4kgzEcKC_TBcc_BQjLucuL6g5tKXwYJT...(lots more after this)
这是我进行重新验证的代码。它可能看起来很乱,但这只是原型(prototype)设计。谁能看到我做错了什么?我认为我完全遵循了规范。
HTML(为简洁起见被 chop )
<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
});
};
最佳答案
好吧,我是个白痴。
我以为我已经正确阅读了规范,结果我错过了对该 URL 的基本调用
插入我的私钥和编码后的响应后,我得到了我的 JSON 对象。
希望这能为处于我位置的其他人消除任何困惑:(
关于javascript - Google Recaptcha - GetResponse 不返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036937/