reCAPTCHA 2导致'递归太多'

时间:2018-01-01 14:21:11

标签: javascript bootstrap-4 recaptcha

我在Umbraco CMS项目中使用bootstrap 4。

我想在注册表格中添加reCAPTCHA 2,但我没有运气。

生成recaptcha的密钥并在web.config中设置它们,我可以在以后获取。

以下是我尝试这样做的代码。

在标题标记的末尾,我包含了这个脚本:

 <script src="https://www.google.com/recaptcha/api.js" async defer></script>

然后表格如下:

@using (Html.BeginUmbracoForm<AccountSurfaceController>("RegisterUser", null, new { id = "RegisterForm" }, FormMethod.Post))
{
    @Html.AntiForgeryToken()
    <div class="form-group">
        <div class="alert alert-info alert-dismissible fade show" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            <small>Te gjitha fushat e meposhtme duhen plotesuar.</small>
        </div>
    </div>
    <div class="form-group">
        <label for="FirstName" class="form-control-label">Emri:</label>
        <input type="text" class="form-control" name="FirstName" id="FirstName">
    </div>
    <div class="form-group">
        <label for="LastName" class="form-control-label">Mbiemri:</label>
        <input type="text" class="form-control" name="LastName" id="LastName">
    </div>
    <div class="form-group">
        <label for="Username" class="form-control-label">Username:</label>
        <input type="text" class="form-control" name="Username" id="Username">
    </div>
    <div class="form-group">
        <label for="Email" class="form-control-label">Email:</label>
        <input type="text" class="form-control" name="Email" id="Email">
    </div>
    <div class="form-group">
        <label for="Password" class="form-control-label">Password:</label>
        <input type="password" class="form-control" name="Password" id="Password">
    </div>
    <div class="form-group">
        <label for="ConfirmPassword" class="form-control-label">Konfirmo Password:</label>
        <input type="password" class="form-control" name="ConfirmPassword" id="ConfirmPassword">
    </div> 
    <div class="form-group">
        <div class="col-6">
            <label for="captchaContainer" class="form-control-label">Captcha:</label>
        </div>
        <div class="col-6">
            <div id="captchaContainer" class="g-recaptcha" data-sitekey="@ConfigurationManager.AppSettings[DictionaryKeys.ReCaptchaPublicKey]"></div>
        </div>
    </div>
      <button type="submit" class="btn btn-primary">Regjistrohu</button>
}

我在SO中读到了这样的一些问题,但它们并没有解决我的问题。 recaptcha项目显示在页面中,但是当我点击它时,它会在控制台中创建错误“过多的递归”并且不显示任何内容。

Erro in the chrome

有人知道为什么会导致这个问题吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题,确实很奇怪。

我的网页上有多个表单。

第一个有recaptcha,而其他形式没有。 但是其他形式确实有如下字段:

<input name="tagName" type="hidden" value="array" />

这就是问题所在,因为当我将te name属性更改为semthing时,它会起作用,例如:

<input  name="anotherName" type="hidden" value="array" />

我认为如果你将name属性等于tagName,recaptacha逻辑中有一个错误来处理这种情况。

无论如何,无论如何都会向recaptach团队报告这个问题,并告诉他们这是一个错误还是我错过了什么。