【发布时间】:2020-10-26 19:57:07
【问题描述】:
有问题的表格是一个简单的表格,上面有 reCaptcha v2。单击提交按钮后,Google 会使用 reCaptcha 向用户(我)发起挑战。每次 Google 验证我是人类时,都会调用 onSubmit,正确序列化表单,但 form.submit() 不会调用服务器上的 ASP.Net MVC 控制器。当 Google reCaptcha 被删除时,控制器被调用就好了,所以我认为这与 ASP.Net 代码没有任何关系。
JavaScript 不是我的强项,所以我假设在尝试调用提交时犯了一个愚蠢的错误。我这里有什么问题?
<script>
var onSubmit = function (token) {
var form = $("form"); // $("#feedbackForm");
console.log(form.serialize());
form.submit();
}
var onGrecaptchaError = function (token) {
grecaptcha.reset();
}
var onloadCallback = function() {
grecaptcha.render('submit', {
'sitekey' : '@reCaptchaPublic',
'callback': onSubmit,
'error-callback': onGrecaptchaError,
'size': 'invisible'
});
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
和剃须刀形式代码:
@using (Html.BeginForm("Email", "Home", FormMethod.Post, new { id = "feedbackForm" }))
{
@* [SNIP] *@
<div class="formfield clear">
<button id="submit" class="btnSubmit">Send To Leadership</button>
</div>
}
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5 recaptcha invisible-recaptcha