我已阅读有关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调用来完成它,因为验证码是此站点上验证机制的一部分。
请帮助解决这个问题。
感谢!!!
答案 0 :(得分:0)
我找到了答案。
data: myForm.serialize(),
myForm并不是我遗憾的表格元素。它只是名为“form”的表。 这不是我的错,但这是我的头痛。 现在一切都很好,验证码看起来不错。 非常感谢。