Google recaptcha与AngularJS无法合作

时间:2014-12-08 13:30:30

标签: javascript angularjs recaptcha

我试图像这样实施Google验证码:

<form name="myForm" ng-submit="doSomething()">
   <div class="g-recaptcha" data-sitekey="my-key"></div>
   <input type="submit" value="Submit">
</form>

在我的头标记中:

<script src='https://www.google.com/recaptcha/api.js'></script>

验证码没有显示在那里。我错过了什么?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我正在使用&#34; grunt server&#34;和grunt在0.0.0.0:9000运行应用程序。 因为reCaptcha不会显示,当我更改为localhost:9000或127.0.0.1时,它可以工作。

我希望它有所帮助。

答案 1 :(得分:2)

如果你使用recapcha + AngularJS,在alter route上,通常你丢失了recapcha的引用,更多 captcha async 的解决方案是:

在回调函数中,在重新加载脚本之前,创建一个简单的验证,

注意:&#39; captchaContainer&#39;是否重新加载的触发器(不在同一页面中创建两个实例)然后您可以无限地更改路径。

示例:

 if (captchaContainer == undefined) {
    var captchaContainer = null;
    var loadCaptcha = function () {
        try {
            captchaContainer = grecaptcha.render('captcha_container', {
                'sitekey': 'Your_key_____'
            });
        } catch (e) {
            if (e.message != 'ReCAPTCHA placeholder element must be empty') {
                return setTimeout('loadCaptcha();', 300);
            }
        }
    };
    loadCaptcha();
}