首页 > 解决方案 > 仅限 Ajax 和 google recaptcha V3

问题描述

我想使用 Jquery 和 ajax 提交数据并做一些事情。

试用 Google Recaptcha V3。在下面的代码中,alert ("token 2 is " + Mytoken); ---> 在这里我收到一条错误消息,提示 Mytoken 未定义

问题是我如何让 grecaptcha.execute 返回可以在其他地方使用的数据?例如,如果验证码有效,那么我使用令牌代码提交一些 ajax 数据,并在提交的后端脚本上验证令牌。

<html>
        <head>
            <title>Recaptcha Ajax</title>
            <script src="https://www.google.com/recaptcha/api.js?render=<?php echo $captcha_site_key; ?>"></script>
        </head>
        <body>



          <script>
          var MYtoken;
          grecaptcha.ready(function() {
              grecaptcha.execute('<?php echo $captcha_site_key; ?>', {action: 'test_page'}).then(function(token) {
                //$("#pet_token").val(token);
                //$('myform').prepend('<input type="hidden" name="recaptchaTOKEN" value="' + token + '">'); 


                alert ("token is " + token);
                alert ("and Mytoken is " + token);
              });
          });
        for (var i = 1; i <= 5; i++) {
            var tick = function(i) {
                return function() {
                    console.log(i);
                }
            };
            setTimeout(tick(i), 1000 * i);
        }
                alert ("token 2 is " + Mytoken);
          </script>

标签: jqueryajaxrecaptcha

解决方案


我想通了...无论我是否在 Ajax 中提交了一些数据,重要的是接收到的数据都经过重新验证码验证

所以... ajax 将简单地在隐藏字段中设置值,在后端页面上,我进行验证码验证

Google Recaptcha v3 示例演示


推荐阅读