我正在尝试使用ajax实现google recaptcha。 但是我从ajax调用得到完整的api响应,而不是我需要的。 验证验证码的api验证工作正常。 这是文件 form_test.php 中AJAX调用的JS代码:
function validateCaptcha()
{
challengeField = $("#g-recaptcha-challenge").val()
responseField = $("#g-recaptcha-response").val()
var html = $.ajax({
type: "POST",
url: "test_ajax.php",
async: false,
data: "g-recaptcha-response=" + responseField,
}).responseText;
console.log(html);
if(html == "success")
{
$("#captchaStatus").html(" ");
document.getElementById("formID").action='test_process.php';
document.getElementById("formID").submit();
document.getElementById('incorrectcap').innerHTML= html;
return true;
}
else
{
alert("unsuccessful");
$("#captchaStatus").html("Your captcha is incorrect. Please try again");
//document.getElementById('incorrectcap').style.display="block";
document.getElementById('incorrectcap').innerHTML= html+". unsuccessful ";
grecaptcha.reset();
return false;
}
这是文件 test_ajax.php
$siteKey = '6Ldl0AoUAAAAAKCRnx1GtLBAk25a5nA8vuY-axt3';
$secret = '__my-secret-key__';
$response=$_POST["g-recaptcha-response"];
$verify=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret}&response={$response}");
$captcha_success=json_decode($verify);
if ($captcha_success->success==true) {
echo 'success';
}
表单上的代码(文件 test_form.php )是:
<form onSubmit="return validateCaptcha()" method="post" id="formID" class="contact-form" name="contact-form">
<input type="text" name="name" id="name" placeholder="Your Name">
<div id="captchaStatus" class="g-recaptcha" data-sitekey="<?php echo $siteKey; ?>"></div>
<input type="submit" class="submit" placeholder="DOWNLOAD BROCHURE" value="DOWNLOAD BROCHURE">
</form>
如果有人可以帮助我使用javascript提交表单,我会尝试使用document.getElementById(“formID”)。action ='test_process.php'; 的document.getElementById( “formID”)提交()。 但这不起作用,我需要的是提交到test_process.php文件的表单,因为我需要该文件的表单的帖子值。
感谢您阅读这么长的问题,所有的帮助都非常受我的赞赏和支持:)