要使用jQuery验证reCAPTCHA,您需要执行以下几个步骤:
<head>
标签内添加以下代码:<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<body>
标签中,添加reCAPTCHA容器和表单:<form id="myForm" action="your_action_url" method="post">
<!-- 在此处添加其他表单字段 -->
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<button type="submit">提交</button>
</form>
请将your_site_key
替换为您在步骤1中获取的站点密钥,将your_action_url
替换为您的表单处理URL。
<head>
标签内,添加以下jQuery代码以验证reCAPTCHA:<script>
$(document).ready(function() {
$('#myForm').on('submit', function(e) {
e.preventDefault();
// 获取reCAPTCHA响应
var recaptchaResponse = grecaptcha.getResponse();
// 检查是否填写了reCAPTCHA
if (recaptchaResponse.length === 0) {
alert('请完成reCAPTCHA验证');
return;
}
// 发送AJAX请求验证reCAPTCHA
$.ajax({
url: 'https://www.google.com/recaptcha/api/siteverify',
type: 'POST',
data: {
secret: 'your_secret_key',
response: recaptchaResponse
},
success: function(response) {
if (response.success) {
// reCAPTCHA验证成功,提交表单
$('#myForm')[0].submit();
} else {
// reCAPTCHA验证失败
alert('reCAPTCHA验证失败,请重试');
}
},
error: function() {
alert('AJAX请求失败,请检查网络连接');
}
});
});
});
</script>
请将your_secret_key
替换为您在步骤1中获取的密钥。
注意:这种方法会在每次表单提交时发送一个额外的请求到Google reCAPTCHA服务器。为了避免不必要的请求,您可以考虑仅在客户端验证通过后(例如,通过检查reCAPTCHA响应是否存在)才提交表单。然后,在服务器端再次验证reCAPTCHA响应,以确保安全性。