reCAPTCHA v3 g-recaptch 使用表单提交
P粉877719694
P粉877719694 2024-01-16 16:18:44
0
1
450

我想使用recaptcha api,但不想重写这个函数。我的密钥位于提交按钮和表单标签上。我可以看到它不生成令牌,只是发送站点密钥。任何帮助都会很棒。

选项一使用表单标签中的键

<form method="POST" name="Form" id="Form" data-sitekey="Form hjkhjkhjkhjk">

选项二使用按钮标签中的键

<button type="submit" 
    class=g-recaptch "btn btn-primary px-4 float-right" 
    data-sitekey="@reCaptchaKey">
   Submit
</button>

目标是使用此方法发送ajax请求

$("#Form").submit(function(e) {
    e.stopPropagation();
    e.preventDefault();
    let formData = this.dataset.sitekey;
    console.log(formData);
    let submitter_btn = $(e.originalEvent.submitter);
    console.log(submitter_btn.data('sitekey'));
});

工作示例 https://jsfiddle.net/tjmcdevitt/8cawy1kb/18/

P粉877719694
P粉877719694

全部回复(1)
P粉395056196

您必须使用 grecaptcha 对象的 execute 方法。为此,您需要向 reCAPTCHA 脚本加载添加渲染参数。有关详细信息,请参阅文档

$(document).ready(function() {
    $("#Form").submit(function(e) {
        e.stopPropagation();
        e.preventDefault();
         let formData = this.dataset.sitekey;
         let submitter_btn = $(e.originalEvent.submitter);
        
        grecaptcha.ready(function() {
            grecaptcha.execute(submitter_btn.data('sitekey'), {
                action: 'submit'
            }).then(function(token) {
                // Add your logic to submit to your backend server here.
                consle.log(token);
            });
        });
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=6LeO3zwnAAAAAOlJQ4RePB73qug2OWQ1XjBWyYbV"></script>
<form method="POST" name="Form" id="Form" data-sitekey="Form hjkhjkhjkhjk">
  <label for="fname">First name:</label>
  <br>
  <input type="text" id="fname" name="fname" value="John">
  <br>
  <label for="lname">Last name:</label>
  <br>
  <input type="text" id="lname" name="lname" value="Doe">
  <br>
  <br>
  <input type="submit" value="Submit" data-sitekey="6LeO3zwnAAAAAOlJQ4RePB73qug2OWQ1XjBWyYbV">
</form>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板