Recaptcha v2 不会每次都加载
Recaptcha v2 doesn't load every time
我的页面上有两个表单,它们都受 reCaptcha v2 保护。我显式渲染它们,但有时它们无法加载。
我使用 ASP.NET MVC5.
<script src="//www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit"
async defer></script>
这就是我的 HTML 代码的样子:
<div id="captchaCredits"></div>
<input type="text" id="captchaCredInput" name="captchaCredInput"
style="display:none" disabled ="disabled">
(那个隐藏的输入只是我用来验证表单的一个技巧)。
这就是我渲染它的方式:
var CaptchaCallback = function(){
var mail = grecaptcha.render('captchaCredits', { 'sitekey': '...', 'theme': 'light'});
}
问题是:在我决定显式呈现我的验证码后,它开始滞后:它不会在我每次加载页面时加载。以前一切都很好,当我自动渲染它时,因为那时我只有一种形式可以防止机器人。我该如何解决我的问题?
UPD:我试过删除其中一个验证码,但没用。另外,我把 console.log(123)
放在 CaptchaCallback
函数中,发现这个函数甚至可能不会在页面加载时执行。
问题是由错误的脚本加载顺序引起的。我已经通过在 <head>
:
中加载 jQuery 和其他库来解决它
<script type="text/javascript" src="lib/jquery-1.9.1.js"></script>
<script type="text/javascript" src="lib/jquery-ui-1.9.1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="//www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>
当使用显式渲染(使用回调)时,定义函数然后调用 API 非常重要,后者使用它进行渲染。
虽然现代浏览器可以毫无问题地管理这些时间,但 IE(在 10 和 11 上测试)需要遵循严格的顺序
我的页面上有两个表单,它们都受 reCaptcha v2 保护。我显式渲染它们,但有时它们无法加载。 我使用 ASP.NET MVC5.
<script src="//www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit"
async defer></script>
这就是我的 HTML 代码的样子:
<div id="captchaCredits"></div>
<input type="text" id="captchaCredInput" name="captchaCredInput"
style="display:none" disabled ="disabled">
(那个隐藏的输入只是我用来验证表单的一个技巧)。
这就是我渲染它的方式:
var CaptchaCallback = function(){
var mail = grecaptcha.render('captchaCredits', { 'sitekey': '...', 'theme': 'light'});
}
问题是:在我决定显式呈现我的验证码后,它开始滞后:它不会在我每次加载页面时加载。以前一切都很好,当我自动渲染它时,因为那时我只有一种形式可以防止机器人。我该如何解决我的问题?
UPD:我试过删除其中一个验证码,但没用。另外,我把 console.log(123)
放在 CaptchaCallback
函数中,发现这个函数甚至可能不会在页面加载时执行。
问题是由错误的脚本加载顺序引起的。我已经通过在 <head>
:
<script type="text/javascript" src="lib/jquery-1.9.1.js"></script>
<script type="text/javascript" src="lib/jquery-ui-1.9.1.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="//www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>
当使用显式渲染(使用回调)时,定义函数然后调用 API 非常重要,后者使用它进行渲染。 虽然现代浏览器可以毫无问题地管理这些时间,但 IE(在 10 和 11 上测试)需要遵循严格的顺序