如何在客户端验证 google recaptcha?
How to validate google recaptcha on client side?
我已经在登录面板上实施了 google reCaptcha,在 3 次登录失败后显示
但我想在点击登录按钮时使用 jQuery 在客户端幻灯片上验证 reCaptcha,这里是代码
<div style="display:none;width:310px;top:205px;left:558px;position:absolute" id="grecaptcha" runat="server">
<cc1:GoogleReCaptcha ID="ctrlGoogleReCaptcha1" runat="server" PublicKey="6LdHrQ0TAAAAAD77ubv9Jr6q4RYkyddhXzX-XPB3" PrivateKey="xxxxxxx" />
</div>
<span id="captcha" style="margin-left:588px;color:red" />
<asp:Button ID="LoginButton" runat="server" OnClientClick="get_action();" CommandName="Login" Text="Inloggen" ValidationGroup="Login1" />
如何使用 jQuery 执行此操作?
我分享我的代码解决方案。但是 proxy.php 和其他详细信息以及完整的解释(包括后端部分)您可能会发现 here。
使用数据回调参数
重新验证
<script src="https://www.google.com/recaptcha/api.js" >;
<form method="post">
<div class="g-recaptcha" data-sitekey="[site_key]" data-callback="onReturnCallback" data-theme="light"></div>
<input value="submit" type="submit" />
</form>
JS 验证
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
var onReturnCallback = function(response) {
//alert('g-recaptcha-response: ' + grecaptcha.getResponse());
var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify';
$.ajax({ 'url' : url,
dataType: 'json',
data: { response: response},
success: function( data ) {
var res = data.success.toString();
alert( "User verified: " + res);
if (res == 'true') {
document.getElementById('g-recaptcha').innerHTML = 'THE CAPTCHA WAS SUCCESSFULLY SOLVED';
}
} // end of success:
}); // end of $.ajax
}; // end of onReturnCallback
</script>
注意!
由于安全问题,后端部分 proxy.php 是必需的。
我已经在登录面板上实施了 google reCaptcha,在 3 次登录失败后显示
但我想在点击登录按钮时使用 jQuery 在客户端幻灯片上验证 reCaptcha,这里是代码
<div style="display:none;width:310px;top:205px;left:558px;position:absolute" id="grecaptcha" runat="server">
<cc1:GoogleReCaptcha ID="ctrlGoogleReCaptcha1" runat="server" PublicKey="6LdHrQ0TAAAAAD77ubv9Jr6q4RYkyddhXzX-XPB3" PrivateKey="xxxxxxx" />
</div>
<span id="captcha" style="margin-left:588px;color:red" />
<asp:Button ID="LoginButton" runat="server" OnClientClick="get_action();" CommandName="Login" Text="Inloggen" ValidationGroup="Login1" />
如何使用 jQuery 执行此操作?
我分享我的代码解决方案。但是 proxy.php 和其他详细信息以及完整的解释(包括后端部分)您可能会发现 here。
使用数据回调参数
重新验证<script src="https://www.google.com/recaptcha/api.js" >;
<form method="post">
<div class="g-recaptcha" data-sitekey="[site_key]" data-callback="onReturnCallback" data-theme="light"></div>
<input value="submit" type="submit" />
</form>
JS 验证
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
var onReturnCallback = function(response) {
//alert('g-recaptcha-response: ' + grecaptcha.getResponse());
var url='proxy.php?url=' + 'https://www.google.com/recaptcha/api/siteverify';
$.ajax({ 'url' : url,
dataType: 'json',
data: { response: response},
success: function( data ) {
var res = data.success.toString();
alert( "User verified: " + res);
if (res == 'true') {
document.getElementById('g-recaptcha').innerHTML = 'THE CAPTCHA WAS SUCCESSFULLY SOLVED';
}
} // end of success:
}); // end of $.ajax
}; // end of onReturnCallback
</script>
注意!
由于安全问题,后端部分 proxy.php 是必需的。