为什么我的ajax调用检索API响应而不是我想要它检索?

时间:2016-11-04 09:35:35

标签: javascript php ajax forms recaptcha

我正在尝试使用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文件的表单,因为我需要该文件的表单的帖子值。

感谢您阅读这么长的问题,所有的帮助都非常受我的赞赏和支持:)

0 个答案:

没有答案