Javascript 如何重新加载reCaptcha v3?

Javascript 如何重新加载reCaptcha v3?,javascript,recaptcha,Javascript,Recaptcha,我看到了谷歌文档,没有找到关于重新加载RecaptchaV3的信息。 如何做到这一点?在不可见验证码中,它自动检测用户行为并对其进行评级,无需重新加载或用户与任何UI的直接交互 reCAPTCHA v3在没有用户摩擦的情况下,为每个请求返回分数。 分数基于与站点的交互,使您能够 为您的站点采取适当的操作 reCAPTCHA v2重置 grecaptcha.reset(); reCAPTCHA v3重置 grecaptcha.reset(); 调用在页面上呈现的grecaptch.execu

我看到了谷歌文档,没有找到关于重新加载RecaptchaV3的信息。


如何做到这一点?

不可见验证码中,它自动检测用户行为并对其进行评级,无需重新加载或用户与任何UI的直接交互

reCAPTCHA v3在没有用户摩擦的情况下,为每个请求返回分数。 分数基于与站点的交互,使您能够 为您的站点采取适当的操作

reCAPTCHA v2重置

grecaptcha.reset();
reCAPTCHA v3重置

grecaptcha.reset();
调用在页面上呈现的grecaptch.execute()函数将通过外观重置该值。()

注意您需要相应地调整所有值


您可以通过复制并粘贴到chrome控制台来测试它。按enter键后,它会更改隐藏字段的值。

请确保在每次后续回发或呼叫Google时都刷新您的令牌

在我的例子中,使用reCAPTCHAv3,我将令牌保存到ASP.NET HiddenField服务器控件,以便在后端进行发现。但是,由于javascript代码中的错误,该控件在后续回发中没有使用新标记进行更新(我只是在HiddenField不是空的情况下刷新该标记,而回发中没有该标记)。我通过比较Google返回的JSON结果发现了错误,并在第二个响应中发现了错误代码“timeout或duplicate”

解决方案是在调用Google之前清除JavaScript中的HiddenField值。希望这能帮助其他有同样问题的人

//每次调用reCAPTCHA之前都需要执行此操作以获取新令牌。
函数resetReCAPTCHAv3(){
$('HiddenFieldreCAPTCHAv3ResponseMP').val('';

}
定义“重新加载”。提交所有表单后,我需要重新加载验证码,对吗?我该怎么做?例如,用户提交表单后发现错误“错误验证码”。之后,他应该修复所有错误并重试。我需要重新加载验证码,对吗?是否重新加载当前页面位置。重新加载()不是选项?不,我如何向用户解释他为什么要重新加载页面?@igramnet在v3中没有错误的验证码或重新加载的概念,都是基于自动计算的分数。你确定你用的是v3吗?我试过你的方法,但没有效果。你能举个例子吗?