javascript - Google Recaptcha - GetResponse 不返回 JSON

原文 标签 javascript jquery html json recaptcha

我一直在为我们的网站实现一个新的登录页面,其中一个要求是对表单中的两个元素进行重新验证(一个用于注册,另一个用于获取用户名/密码提醒)。

我已经设法让两个recaptchas 工作,并且它们都正常工作。但是,当我尝试使用 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)



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

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
    });
};

最佳答案

好吧,我是个白痴。

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

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



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

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

关于javascript - Google Recaptcha - GetResponse 不返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27036937/

相关文章:

javascript - 从scss访问伪类元素属性宽度

javascript - 如何通过jQuery对HTML元素进行分页

javascript - 在 Canvas 中绘制多条弧线的 JQuery 动画问题

javascript - 当language =“text/javascript”时,javascript代码不起作用,但在language =“Javascript”时,javascript代码有效

css - 引导媒体查询导航栏不起作用

Javascript,Jquery的变量问题

javascript - 将来自Web服务的字符串转换为JSON

javascript - 如何获取mapbox上像素的颜色

javascript - 如何使用 jasmine.js 测试 js 函数的一部分?

html - 图例表单中的水平表单