使用纯javascript应用Google recaptcha V3

使用纯javascript应用Google recaptcha V3,javascript,recaptcha,grecaptcha,Javascript,Recaptcha,Grecaptcha,我试图用纯javascript和PHP实现Google recaptcha V3, 因为我不想使用繁重的jQuery,而且我对它了解不多 但在实现“execute()”方法时,我不理解它是什么: window.addEventListener('DOMContentLoaded', function() grecaptcha.execute('XXXXXXXXXXXXXXX', {action: 'homepage'}).then(function(token) { do

我试图用纯javascript和PHP实现Google recaptcha V3, 因为我不想使用繁重的jQuery,而且我对它了解不多

但在实现“execute()”方法时,我不理解它是什么:

window.addEventListener('DOMContentLoaded', function()
    grecaptcha.execute('XXXXXXXXXXXXXXX', {action: 'homepage'}).then(function(token) {
        document.getElementById('g-recaptcha').value = token;
      });
});
我用addEventListener()替换了“.ready()”方法,但找不到“execute()”是什么

此外,我也无法知道什么是“grecaptcha”,这是谷歌的例子。(在示例中,我还没有找到声明的位置)

我的错误(在javascript控制台中)是:

我的表单定义如下:

<form method="post" action="reaction.php" id="tox" name="frm1">
   ...
   <input type="hidden" id="g-recaptcha" name="g-recaptcha">
   ...
</form>
<header>
      <script src="https://www.google.com/recaptcha/api.js?render=xxxxxxxxxxx"></script>
</header>

...
...
我的HTML头的定义如下:

<form method="post" action="reaction.php" id="tox" name="frm1">
   ...
   <input type="hidden" id="g-recaptcha" name="g-recaptcha">
   ...
</form>
<header>
      <script src="https://www.google.com/recaptcha/api.js?render=xxxxxxxxxxx"></script>
</header>

代码中有什么错误,我应该添加什么代码来声明“grecaptcha”


提前感谢您的回答。

首先在head标记中包含recaptcha api.js脚本,然后包含包含代码的script标记。您可以使用recaptcha的ready事件,它不是jQuery,而是recaptcha自己的函数。您可能还需要仔细检查开括号和闭括号,以便它们匹配。可能只是当您将代码粘贴到这个问题中时,javascript函数没有正确的括号感谢您的回答,现在我遇到了错误:原因似乎是因为我使用了命令:require“myform.php”。我将尝试合并两个php文件。这似乎是一个站点协议差异的问题。我的网站现在不支持https,我不能使用Google recaptcha吗?您可以使用Google recaptcha而不使用ssl,但我建议您在网站上使用ssl。您可以使用letsencrypt.org获得免费SSL。