首页 > 解决方案 > 在我清除服务器缓存之前,Recaptcha 无法正常工作

问题描述

我在一个网站上实现了谷歌的recaptcha。但是,除非我清除服务器缓存,否则 recaptcha v2 似乎不起作用。不知道为什么会这样。它可以正常工作大约一两个小时,然后在用户无法提交条目的地方中断。有什么想法可以解决这个问题吗?我的网站是 roadmap2recovery.gov.tt

标签: phplaravelcachingrecaptcha

解决方案


您当前正在页面加载时呈现 reCAPTCHA 小部件,然后在用户达到目的时将其重置。这可能导致意外行为。

我建议您在用户呈现最终选项卡时添加占位符并手动呈现小部件。

在你的情况下:

<div id="recaptcha_widget"></div>
<script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer>

并且在wizard_validation.js

if ($('li.last').hasClass('current')) {
    setTimeout(function(){ 
        grecaptcha.render('recaptcha_widget', {
           'sitekey' : 'your_site_key'
        });
    }, 100); // <-- maybe also set this a bit higher?
}

推荐阅读