javascript - 不可见的 ReCaptcha 不调用回调

标签 javascript recaptcha invisible-recaptcha

我有这样的隐形验证码设置:

<!-- CAPCHA -->
<script src="https://www.google.com/recaptcha/api.js"></script>
<div class="g-recaptcha"
    data-sitekey="6LchqW0UAAAAANOoHruD0Ql5aNJIZld4EwLiaf-W"
    data-callback="capchaDone" data-size="invisible">
</div>

回调函数定义在这里:

window.capchaDone = function(response) {
    console.log("DONE");
    console.log("RES", response);
};

但是没有任何记录。我也试图在 Javascript 中找到一个简单的实现。但没有关于此的真实文档

最佳答案

截至 Documentation ,如果您将操作附加到 DIV,您还必须从 JavaScript 调用 grecaptcha.execute();,以便执行 reCAPTCHA。假设您有这样的表单:

<!-- CAPTCHA -->
<script src="https://www.google.com/recaptcha/api.js"></script>
<div class="g-recaptcha"
    data-sitekey="6LchqW0UAAAAANOoHruD0Ql5aNJIZld4EwLiaf-W"
    data-callback="capchaDone" data-size="invisible">
</div>

<form id="loginForm">
  <input type="text" name="username" id="usernameField" />
  <input type="password" name="password" id="passwordField" />
  <input type="submit" />
</form> 

并且附加了一个提交事件监听器,你必须在那里调用 reCAPTCHA:

document.querySelector("#loginForm").addEventListener("submit", function() {
  /** Validate input **/
  grecaptcha.execute(); // hand execution off to `data-callback`
});

然后,在验证响应后,您可以在 data-callback 函数中提交表单。

function capchaDone(response) {
  console.log(response)
  /** Validate reCAPTCHA **/
  document.querySelector("#loginForm").submit() // at last, submit the form
}

关于javascript - 不可见的 ReCaptcha 不调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52137592/

相关文章:

javascript - socket.io 客户端未从服务器接收消息

python - 找到 reCAPTCHA 元素并单击它 - Python + Selenium

python - recaptcha 没有通过 selenium python 中的 anticaptcha 插件解决

reactjs - 如何让不可见的react-google-recaptcha、Formik和yup协同工作?

google-contacts-api - Google reCAPTCHA v3 是否曾通过 reCAPTCHA 质询提示可疑?

javascript - Invisible Recaptcha Challenge 弹出窗口在父点击时消失

javascript - 使加载的 svg 在 snap.svg 中不可见

javascript - 在生产中直接表达到错误的端点,但在开发中完美工作

javascript - 从另一个 Controller 更新 $scope 值

css - 如何更改 reCAPTCHA 的宽度?