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"; } }
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>