c# - MVC3 : How to check recaptcha with Ajax or directly with JS?

标签 c# javascript ajax asp.net-mvc-3 recaptcha

我想通过 Ajax 检查 recaptcha 控件。

$(document).ready(function () {
    $('#submit').click(function () {
        $.ajax({
            url: '/Competition/CheckForm',
            type: "POST",
            data: ????,
            success: function (data) {
                alert(data);
                return false;
            },
            error: function (jqXhr, textStatus, errorThrown) {
                alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
                return false;
            }
        });
    });
});

我的问题是,如何将验证码数据传输到我的 ActionResult。

@ReCaptcha.GetHtml(publicKey: "publicKey")

这是我的 ActionResult:

[HttpPost]
public ActionResult CheckForm(???)
{
    if (ReCaptcha.Validate(privateKey: "privateKey"))
    {
    }
    return Json();
}

有人知道如何使用 Ajax 检查验证码吗?

使用 PHP 很容易...您可以使用函数检查数据(“recaptchalib.php”中的“recaptcha_check_answer”)

TIA!

最佳答案

尝试订阅表单的提交事件以对其进行 AJAX 化:

$(document).ready(function () {
    $('#myForm').submit(function () {
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (data) {
                alert(data);
            },
            error: function (jqXhr, textStatus, errorThrown) {
                alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
            }
        });
        return false;
    });
});

但是,如果您希望在单击提交按钮以外的某个元素时通过 AJAX 提交给定表单,您还可以执行以下操作:

$(document).ready(function () {
    $('#someButton').submit(function () {
        var myForm = $('#myForm');
        $.ajax({
            url: myForm.attr('action'),
            type: myForm.attr('method'),
            data: myForm.serialize(),
            success: function (data) {
                alert(data);
            },
            error: function (jqXhr, textStatus, errorThrown) {
                alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
            }
        });
        return false;
    });
});

关于c# - MVC3 : How to check recaptcha with Ajax or directly with JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8983652/

相关文章:

ajax - ngtable服务器端分页

c# - RavenDB 嵌套 LINQ 表达式的解决方法

c# - JSON 与 ASP 返回错误

javascript - js 是否工作

javascript - Rails ajax spinner 适用于开发,但不适用于生产

javascript - jQuery 1.4.4+ AJAX 请求 - 发布空数组或对象成为字符串

c# - 在 C# 中,如何在嵌套的 foreach 循环中强制迭代 IEnumerable?

c# - ASP.NET MVC5 标识 : Avoid changing logged-in user after registration

javascript - 如何从文件列表中删除图像并使用 api 请求将其上传到服务器?

javascript - 如何在javascript中对对象元素进行排序?