我无法在我的ajax联系表单中集成reCaptcha.只有在用户完成挑战后的前2分钟才有效. ReCaptcha在2分钟后过期.问题是小部件是完整的,没有像“会话过期.再次完成挑战”.用户无法执行任何操作,但会重新加载页面.此外,不调用过期回调(显然,因为小部件不会过期).
我可以在完成后设置一个计时器2分钟来重置小部件.这可行,但它有点hacky,如果谷歌选择改变未来的到期时间.任何想法为什么它不会过期?
编辑:
这是代码,我做了一个小例子html文件并证明它不起作用.
<html> <head></head> <body> <div id="google-recaptcha-widget"></div> <script> var expiredCallback = function() { alert('expired!'); } var recaptchaLoad = function() { grecaptcha.render('google-recaptcha-widget',{ 'sitekey' : 'mysitekey' 'expired-callback': expiredCallback }); } </script> <script src="https://www.google.com/recaptcha/api.js?onload=recaptchaLoad&render=explicit" async defer></script> </body></html>
解决方法
<div id="google-recaptcha-widget" class="g-recaptcha" data-sitekey="mySiteKey" data-callback="myCallbackMethod" data-expired-callback="expiredCallback"></div> <script> function myCallbackMethod() { // save the world } function expiredCallback() { // Uh oh,reCAPTCHA expired,hack the world } </script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。