如何解决Google reCAPTCHA 令牌为空
我正在尝试将 Google recaptcha v3 实施到我的 MVC 表单中。提交表单时,reacptcha 令牌值始终为空,但表单中的其他字段具有正确的值。任何想法问题出在哪里?谢谢。 contact.cs 模型:
public class contact
{
[Key]
public int Id { get; set; }
public string FullName {get;set;}
...
public string GoogleCaptchaToken { get; set; }
}
index.cshtml 视图:
@using reCAPTCHA.MVC
@section Scripts
{
<script src="https://www.google.com/recaptcha/api.js?my site key"></script>
<script>
grecaptcha.ready(function () {
grecaptcha.execute('my site key',{ action: 'Home' }).then(function (token) {
$("#GoogleCaptchaToken").val(token);
});
});
</script>
}
@using (Html.BeginForm("Index","Home",System.Web.Mvc.FormMethod.Post))
{
@Html.AntiForgeryToken()
<!--form fields-->
...
@Html.HiddenFor(model => model.GoogleCaptchaToken)
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
</div>
}
<style>
.text-danger {
color: red;
}
</style>
@Scripts.Render("~/bundles/jqueryval")
后端代码:
家庭控制器处理程序
[HttpPost]
public ActionResult Index(contact model)
{
if (ModelState.IsValid)
{
var isCaptchaValid = ReCaptchaPassed(model.GoogleCaptchaToken);
if (isCaptchaValid)
{
return RedirectToAction("Confirmation");
}
else
{
return View();
}
}
return View();
}
public static bool ReCaptchaPassed(string gRecaptchaResponse)
{
HttpClient httpClient = new HttpClient();
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。