我尝试将 Google reCAPTCHA 版本 3 与 Umbraco 表单版本 12.1.1 一起使用,但在渲染表单时,当我尝试提交表单时,我也看不到任何与验证码相关的渲染内容。它不允许提交表单并保持相同的表单视图。任何遇到此问题的人或任何人都可以帮助我解决此问题。
加载我添加 Umbraco 表单的页面时,我注意到浏览器控制台上出现错误。
Uncaught TypeError: Cannot read properties of undefined (reading 'ready')
at HTMLDocument.<anonymous>
该错误表明 reCAPTCHA 脚本存在问题,无法正确加载。经过仔细检查,发现 https://www.google.com/recaptcha/api.js 脚本在表单提交事件之前并未加载。
我修改了实现,以确保在提交表单之前加载 reCAPTCHA 脚本。通过合并 reCAPTCHA 脚本的条件加载,我确保脚本标记动态获取必要的内容,如下所示
@{
var siteKey = Configuration.GetSection("Umbraco").GetSection("Forms").GetSection("FieldTypes").GetSection("Recaptcha3")["SiteKey"];
if (!string.IsNullOrEmpty(siteKey))
{
var recapctchaJs = String.Format("https://www.google.com/recaptcha/api.js?render={0}", siteKey);
<script src="@recapctchaJs"></script>
}
}
现在问题已解决,并且按预期工作。