You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Umbraco CMS集成reCAPTCHA 2触发‘too much recursion’错误求助

解决Umbraco+Bootstrap4中reCAPTCHA 2的"too much recursion"错误

根据你描述的情况——reCAPTCHA能正常显示但点击触发递归错误,我遇到过类似的场景,大概率是以下几个原因导致的,给你逐一排查方案:

1. 元素ID与label的for属性冲突(最可能的原因)

你代码里给reCAPTCHA容器设置了id="captchaContainer",同时对应的label标签用了for="captchaContainer"。但reCAPTCHA的div不是标准的表单输入控件,浏览器尝试将label的点击事件绑定到这个div时,会触发不必要的事件循环,进而引发"too much recursion"错误。

修改方案:
去掉label的for属性,或者给label设置一个不关联容器的id,因为reCAPTCHA本身会提供 accessibility 提示,不需要额外绑定label到容器:

<div class="form-group">
    <div class="col-6">
        <label class="form-control-label">Captcha:</label> <!-- 移除for属性 -->
    </div>
    <div class="col-6">
        <!-- 可以移除id,除非需要显式初始化reCAPTCHA -->
        <div class="g-recaptcha" data-sitekey="@ConfigurationManager.AppSettings[DictionaryKeys.ReCaptchaPublicKey]"></div>
    </div>
</div>

2. Bootstrap JS与reCAPTCHA的事件绑定冲突

Bootstrap 4依赖jQuery,而reCAPTCHA的脚本也会使用DOM事件绑定。如果页面中存在jQuery版本不一致、重复引入,或者Bootstrap的某些组件(如模态框、工具提示)的事件与reCAPTCHA冲突,也可能导致递归错误。

排查方案:

  • 检查页面是否重复引入了jQuery或Bootstrap JS(比如布局页和内容页都引入了),确保只加载一次;
  • 将reCAPTCHA的脚本放在Bootstrap JS之后加载,让Bootstrap先完成事件初始化;
  • 暂时禁用Bootstrap的某些交互组件(如tooltip、popover),测试是否还会报错,逐步定位冲突点。

3. Umbraco表单的重复事件绑定

Html.BeginUmbracoForm会自动处理表单的提交事件,如果页面存在表单重复渲染(比如局部视图多次加载),或者自定义的表单事件与reCAPTCHA的事件叠加,可能引发递归。

解决思路:

  • 确保页面中只有一个注册表单实例;
  • 尝试将reCAPTCHA容器移到Umbraco表单外部测试(虽然不符合规范,但可以快速验证是否是表单事件冲突);
  • 检查是否有自定义的表单提交事件监听器,避免与reCAPTCHA的验证事件重复绑定。

4. 改用显式初始化reCAPTCHA

自动初始化(通过g-recaptcha类)有时候会和页面的异步加载逻辑冲突,改用显式初始化可以避免这个问题:

首先修改脚本引入:

<script src="https://www.google.com/recaptcha/api.js?onload=initCaptcha&render=explicit" async defer></script>

然后添加初始化函数:

<script>
    function initCaptcha() {
        grecaptcha.render('captchaContainer', {
            sitekey: '@ConfigurationManager.AppSettings[DictionaryKeys.ReCaptchaPublicKey]'
        });
    }
</script>

同时给reCAPTCHA容器保留id:

<div id="captchaContainer"></div>

先从第一个方案开始排查,因为ID冲突是这类错误最常见的诱因,大概率能解决你的问题。

内容的提问来源于stack exchange,提问作者Rey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:46:45