简体   繁体   English

google recaptcha with ajax form

[英]google recaptcha with ajax form

I have a google recaptcha but my form is ajaxed so I need to get the 'input value' of the token generated by the captcha, I inspect the page to find the token and I did fin the token 我有一个google recaptcha,但我的表单是ajaxed所以我需要获取验证码生成的令牌的“输入值”,我检查页面找到令牌,我确实找到了令牌

<input type="hidden" id="recaptcha-token" value="03AHJ_VuucWtkVREJrdNs4CGxDBOVJ0NF5mr94-pKbmRE46-VjgtdPrnS3pPtub-fAuqGZHTwoZgbeFGrbe6gMeMuDTtsu1AmHXPkwdlO2n_zRwmnueSBkwDfzr1JLXjX50qF20yWDjV7S74za9SgYTWaNiwYZmljmFQ2niJt7fqR0CncIQtHuTtkrJszZqJDKyCfFGKpKtGEzYOCd6xGOM54QD9C4bhujbswyuCbOpXKMBoBdEtSthCsOllxIZPgATXdqfhAD5D-rgUb6wvvS0KIJJaYyQ8pzZHTNI6y1Mv20LY5dfkKGUaCR6e9F4WnuU8Fd8ZIRXRVrvZdg2U3XUfkJsojUQmYbvCtkjzZ_a49SwKEtU8X8jYVtTk_C5TvxQqEH8NbM1P5yJm-Ua5b4jVaOUp9df0QiZbVH2PlQOIXtPiVk21y_Ff2YaqTpxe2hgmLjdSSfhP3bKQ9L82zB-wRopATkcVOuoGWyx9k8L8zpQ5ZudQtSobFsf3UYg3NhtuBZeeuDkHefyEWk4_Ji-oIp4N2qh9Wv4UKZllSJjwsebtNY_mI7QCon0mKy5ppiJ8vbZU8Q9DM8RQyKsGI8OA3hN8WgD3jijA">

so no I need to capture the value and send it with the request but for some reason it does not store the value in the variable 所以我不需要捕获值并将其与请求一起发送,但由于某种原因它不会将值存储在变量中

here is the jquery code 这是jquery代码

 $(document).on('click', '#IDcontactSubmitBtn', function(event) {
    event.preventDefault();
    var recaptchaToken = $('#recaptcha-token').val();
    console.log(recaptchaToken);
});

even though I did can see the token when I inspect the element it is not stored in the variable, I have no Idea why, may be its not even the right way to implement google recaptcha? 即使我在检查元素时可以看到令牌它没有存储在变量中,我也不知道为什么,可能它甚至不是正确的方式来实现谷歌recaptcha? pls help, thank you. 请帮助,谢谢。

为了捕获令牌,您应该使用此代码

var token = $("#g-recaptcha-response").val();

I found its working. 我找到了它的工作。

<!DOCTYPE html>
<html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Place Holder</title>
      <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>

        <input type="hidden" id="recaptcha-token" value="03AHJ_VuucWtkVREJrdNs4CGxDBOVJ0NF5mr94-pKbmRE46-VjgtdPrnS3pPtub-fAuqGZHTwoZgbeFGrbe6gMeMuDTtsu1AmHXPkwdlO2n_zRwmnueSBkwDfzr1JLXjX50qF20yWDjV7S74za9SgYTWaNiwYZmljmFQ2niJt7fqR0CncIQtHuTtkrJszZqJDKyCfFGKpKtGEzYOCd6xGOM54QD9C4bhujbswyuCbOpXKMBoBdEtSthCsOllxIZPgATXdqfhAD5D-rgUb6wvvS0KIJJaYyQ8pzZHTNI6y1Mv20LY5dfkKGUaCR6e9F4WnuU8Fd8ZIRXRVrvZdg2U3XUfkJsojUQmYbvCtkjzZ_a49SwKEtU8X8jYVtTk_C5TvxQqEH8NbM1P5yJm-Ua5b4jVaOUp9df0QiZbVH2PlQOIXtPiVk21y_Ff2YaqTpxe2hgmLjdSSfhP3bKQ9L82zB-wRopATkcVOuoGWyx9k8L8zpQ5ZudQtSobFsf3UYg3NhtuBZeeuDkHefyEWk4_Ji-oIp4N2qh9Wv4UKZllSJjwsebtNY_mI7QCon0mKy5ppiJ8vbZU8Q9DM8RQyKsGI8OA3hN8WgD3jijA">


        <button type="button" id="IDcontactSubmitBtn" >Submit</button>
        <script type="text/javascript">        

        $(document).on('click', '#IDcontactSubmitBtn', function(event) {
            event.preventDefault();
            var recaptchaToken = $('#recaptcha-token').val();
            console.log(recaptchaToken);
        });

    </script>

    </body>
</html>

let me know if your code is live, it might help us a lot to find the problem. 让我知道如果您的代码是实时的,它可能会帮助我们找到问题。

文档建议你那样做。

var token = grecaptcha.getResponse();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM