【问题标题】:Detect/listen for google recaptcha submission?检测/监听 google recaptcha 提交?
【发布时间】:2016-01-18 04:27:07
【问题描述】:

我尝试在网上搜索此内容,但一无所获。

我需要检查用户何时提交验证码并发送表单(例如,也充当提交按钮)。 我知道 google 的 recaptcha 是 iframed,所以我想知道这到底是如何做到的:

  1. 其实是在本地使用javascript监听提交事件并提交表单
  2. 在我的 php 服务器中监听提交,然后将请求的结论传达给我的用户

我希望第一个实际上是可能的,因为第二个会对臀部造成巨大的痛苦。有没有人知道如何做到这一点,最好是通过方法1?

【问题讨论】:

    标签: javascript forms recaptcha


    【解决方案1】:

    Google 提供了验证验证码的功能。您需要在允许提交表单之前对其进行验证。有关详细信息,请参阅他们的文档:https://developers.google.com/recaptcha/docs/display

    我的设置是这样的: <script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit'></script>

    var RC2KEY = 'sitekey';
    function reCaptchaVerify(response) {
        if (response === document.querySelector('.g-recaptcha-response').value) {
            /* do something */
        }
    }
    
    function reCaptchaExpired () {
        /* do something when it expires */
    }
    
    function reCaptchaCallback () {
        grecaptcha.render('id', {
            'sitekey': RC2KEY,
            'callback': reCaptchaVerify,
            'expired-callback': reCaptchaExpired
        });
    }
    

    【讨论】:

      【解决方案2】:

      使用javascript在本地监听提交事件并提交表单

      您想收听 reCaptcha 提交并发送表单。然后看我对类似问题的回答:ReCaptcha v2.0 auto submit

      重要

      重要的是,只有在谷歌服务器验证成功时才需要提交表单。答案中的代码解决了这个问题:

      success: function( data  ) {  
                      var res = data.success.toString(); 
                      if (res)
                         { document.myform.submit(); }    
                  }  // end success 
      

      【讨论】:

        【解决方案3】:

        【讨论】:

        • 只指后端,我要前端。在您的下一个答案中,请至少提供您感兴趣的部分,而不仅仅是一个链接
        • 只有当你阅读了文档。这是具体链接developers.google.com/recaptcha/docs/display。默认情况下,recaptcha 不是 iframed,当它未检测到 javascript 时,它会回退到 iframece 版本
        猜你喜欢
        • 1970-01-01
        • 2017-12-21
        • 2015-07-03
        • 2015-02-25
        • 1970-01-01
        • 2017-05-16
        • 2022-08-17
        • 2016-03-12
        • 2013-05-04
        相关资源
        最近更新 更多