无法在自定义代码中验证Recaptcha

时间:2013-12-04 10:47:09

标签: c# asp.net-mvc-4 razor web recaptcha

我已阅读有关recaptcha的文档,有可能在localhost上测试它。 我的问题是我无法在自己的代码中验证recaptcha。

我需要将重新捕获添加到Razor MVC 4 Web应用程序中,现在正在使用。

我是这样做的。

default.cshtml

 $.ajax({
                                    type: 'post',
                                    data: myForm.serialize(),
                                    url: "xrm/VerifyCaptcha",
                                    success: function (msg) {
                                        debugger
                                        if (msg.Success != true) {
                                            Recaptcha.reload(); // reloads a new code
                                            $('#alert').text('Введите текст картинки!');
                                        } else {

                                            var dataArray = { firstName: $('#input_firstname').val(), lastName: $('#input_lastname').val(), companyName: $('#input_companyname').val(), email: $('#input_email').val(), phone: $('#input_phone').val() };
                                            $.ajax({
                                                type: 'get',
                                                url: 'xrm/register',
                                                data: dataArray,
                                                contentType: 'application/json',
                                                success: function (response) {
                                                    console.log(response);
                                                    $('#alert').fadeOut("normal");
                                                    $('#form').fadeOut("normal");
                                                    $('#information').fadeIn("normal");



 <div class="editor-label">
 Are you a human?
</div>
 <div class="editor-field">
 @Microsoft.Web.Helpers.ReCaptcha.GetHtml("XXXXXXXXX", "blackglass","ru",0)
 </div>

控制器

[HttpPost]
        public ActionResult VerifyCaptcha()
        {
            var valid = Microsoft.Web.Helpers.ReCaptcha.Validate(privateKey: "XXXX");
            if (valid)
            {
                return Json(new
                {
                    Success = true,
                    Message = "YES! Success!"
                }, JsonRequestBehavior.AllowGet);
            }

            return Json(new
            {
                Success = false,
                Message = "Error!!!"
            }, JsonRequestBehavior.AllowGet);


        }

但是var valid = Microsoft.Web.Helpers.ReCaptcha.Validate(privateKey: "XXXX"); 我必须通过ajax调用来完成它,因为验证码是此站点上验证机制的一部分。 请帮助解决这个问题。 感谢!!!

1 个答案:

答案 0 :(得分:0)

我找到了答案。

data: myForm.serialize(),

myForm并不是我遗憾的表格元素。它只是名为“form”的表。 这不是我的错,但这是我的头痛。 现在一切都很好,验证码看起来不错。 非常感谢。