Dùng Ajax truyền reCAPTCHA value vào controller như thế nào? mvc c#

Thảo luận trong 'Lập trình web Asp.net' bắt đầu bởi seolagi, 10/4/20.

  1. seolagi
    Tham gia ngày:
    16/4/14
    Bài viết:
    1,029
    Đã được thích:
    81
    Điểm thành tích:
    48
    HI mọi người, em muốn check recaptcha trong ajax truyền từ jquery javascript vào trong controller của web, mà em không biết truyền và lấy nó như thế nào. Code em ở bên dưới, bạn nào biết giúp em với ạ. Giúp em cách dùng Ajax truyền reCAPTCHA value vào controller như thế nào? mvc c#

    Tại View em chèn
    HTML:
    <div class="g-recaptcha" data-sitekey="@recaptchaPublickey"></div>
    Tại footer em chèn
    HTML:
    <script>
    $("#btnSubmit").click(function () {
            var rname = $("#rName").val();
            var rcontent = $("#rContent").val(); 
            var recaptch = ????
            $.ajax({
                    url: "/Home/SaveData",
                    type: "POST",
                    data: { name: rname, content: rcontent, recaptch: Recaptcha)},
                    success: function (response) {
                       ////
                    }
                });
            }
        });
    </script>
    Tại controller em chèn
    Mã:
    public ActionResult Reviews(string name, string content, string Recaptcha)
    {
         CaptchaResponse response = ValidateCaptcha(Recaptcha);
          if (response.Success == false || ModelState.IsValid == false)
          {
               strResult += "Vui Lòng xác nhận: Tôi không phải là người máy \n";
           }
    }
    
     
    Cảm ơn đã xem bài:

    Dùng Ajax truyền reCAPTCHA value vào controller như thế nào? mvc c#

  2. admin
    Tham gia ngày:
    22/5/13
    Bài viết:
    4,897
    Đã được thích:
    1,198
    Điểm thành tích:
    113
    Giới tính:
    Nam
    Bạn lấy bằng jqery như sau:
    Mã:
    grecaptcha.getResponse(jQuery('.g-recaptcha').attr('FromId'));
    Thêm vào code bạn như sau:

    Trong View
    Mã:
    @using (Html.BeginForm("SaveDataa", "Home", FormMethod.Post, new { id = "frmDataSave", name = "frmDataSave" }))
    {
      ....cách thẻ html
      <div class="g-recaptcha" data-sitekey="@recaptchaPublickey"></div>
    }
    Trong footer
    HTML:
    <script>
    $("#btnSubmit").click(function () {
            var rname = $("#rName").val();
            var rcontent = $("#rContent").val(); 
            var recaptch = grecaptcha.getResponse(jQuery('.g-recaptcha').attr('frmDataSave'));
            $.ajax({
                    url: "/Home/SaveData",
                    type: "POST",
                    data: { name: rname, content: rcontent, recaptch: Recaptcha)},
                    success: function (response) {
                           grecaptcha.reset();
                          ////
                    }
                });
            }
        });
    </script>
     
    Chỉnh sửa cuối: 10/4/20