我在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">×</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项目显示在页面中,但是当我点击它时,它会在控制台中创建错误“过多的递归”并且不显示任何内容。
有人知道为什么会导致这个问题吗? 提前谢谢。
答案 0 :(得分:0)
我发现了这个问题,确实很奇怪。
我的网页上有多个表单。
第一个有recaptcha,而其他形式没有。 但是其他形式确实有如下字段:
<input name="tagName" type="hidden" value="array" />
这就是问题所在,因为当我将te name属性更改为semthing时,它会起作用,例如:
<input name="anotherName" type="hidden" value="array" />
我认为如果你将name属性等于tagName,recaptacha逻辑中有一个错误来处理这种情况。
无论如何,无论如何都会向recaptach团队报告这个问题,并告诉他们这是一个错误还是我错过了什么。