0
我对这篇文章的首段有点糊涂:这https://developers.google.com/recaptcha/docs/verify谷歌验证码验证
当您使用第三种方法来验证(即`数据回调”属性),也意味着,有没有需要更长时间从后端POST到https://www.google.com/recaptcha/api/siteverify?这基本上是一个100%的客户端验证码?
我对这篇文章的首段有点糊涂:这https://developers.google.com/recaptcha/docs/verify谷歌验证码验证
当您使用第三种方法来验证(即`数据回调”属性),也意味着,有没有需要更长时间从后端POST到https://www.google.com/recaptcha/api/siteverify?这基本上是一个100%的客户端验证码?
这意味着你将发布与阿贾克斯,如果其成功与否,当你得到你的回调,那么你可以有一个JavaScript函数,以便提交你需要做的/后或任何行动。我使用回调来允许登录按钮提交,如果尚未完成,则该按钮保持禁用状态。您仍然需要向Google提交您的挑战,以便他们验证它是否成功。这是一个简单的例子。
<div class="g-recaptcha" id="login" data-callback="captcha_filled"
data-expired-callback="captcha_expired" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></div>
function captcha_filled() {
$("#submitLogin").prop('disabled', false);
}
但不会执行'grecaptcha.getResponse()'实现相同?据我所知,如果用户忘记检查验证码或未能通过挑战,那么'grecaptcha.getResponse()'将不会有值。在这种情况下,使用自己的AJAX文章有什么意义? – faridghar
我做了一个测试,看起来你是对的。如果挑战未完成并调用'grecaptcha.getResponse()',它将返回null,如果成功,它将返回一个值。在你的问题中,你提到了第三种方法作为数据回调,这让我感到困惑,但这不是这种方法所做的。您可以使用上述调用来验证您的挑战,但数据回调只是在完成时执行任何类型的功能。以下是关于[Javascript API](https://developers.google.com/recaptcha/docs/display#js_api)的更多信息。 – Ryan89