如何使用 ajax 和表单数据将验证码提交给控制器
How submit captcha to the controller using ajax and form data
我有一个带有一些字段和文件上传的 form
,使用 asp.net MVC
中的 ajax
呈现为 partial view
。提交表单时,我想将所有数据传递给控制器。但是如果我使用 $("form").serialize()
,它不会将选定的文件传递给控制器。所以我使用 formData()
将数据传递给控制器。至此,一切正常。
但是在使用 CaptchaMvc
添加 captcha
之后,它没有到达控制器。即使我输入有效captcha
,它在控制器中也是无效的。
这就是我使用 ajax
和 formData
向控制器发送数据的方式
var data = new FormData();
var vidFile = null;
if ($("#FileUpload")[0].files.length > 0)
vidFile = $("#FileUpload")[0].files[0];
data.append("detail", $("#detail").val());
data.append("name", $("#name").val());
data.append("FileUpload", vidFile);
$.ajax({
url: "/home/submitData",
type: "POST",
contentType: false,
processData:false,
data: data,
success: function (response) {
if (response.success == true) {
} else {
}
}
});
有没有办法将验证码也传递给控制器?
为什么不能使用不同的控制器函数进行验证,如下:
提交时,先验证验证码,根据结果调用另一个控制器函数提交数据或显示错误。
var submitData = function(){
var data = new FormData();
var vidFile = null;
if ($("#FileUpload")[0].files.length > 0)
vidFile = $("#FileUpload")[0].files[0];
data.append("detail", $("#detail").val());
data.append("name", $("#name").val());
data.append("FileUpload", vidFile);
$.ajax({
url: "/home/submitData",
type: "POST",
contentType: false,
processData:false,
data: data,
success: function (response) {
if (response.success == true) {
//Success
} else {
//Submission failed
}
}
});
}
var validateCaptcha = function(){
$.ajax({
url: "/home/validateCaptcha",
type: "POST",
data: $("form").serialize(),
success: function (response) {
if (response.success == true) {
submitData();
} else {
alert("Invalid Captcha entry");
}
}
});
}
$("form").submit(function(e){
validateCaptcha();
});
我有一个带有一些字段和文件上传的 form
,使用 asp.net MVC
中的 ajax
呈现为 partial view
。提交表单时,我想将所有数据传递给控制器。但是如果我使用 $("form").serialize()
,它不会将选定的文件传递给控制器。所以我使用 formData()
将数据传递给控制器。至此,一切正常。
但是在使用 CaptchaMvc
添加 captcha
之后,它没有到达控制器。即使我输入有效captcha
,它在控制器中也是无效的。
这就是我使用 ajax
和 formData
var data = new FormData();
var vidFile = null;
if ($("#FileUpload")[0].files.length > 0)
vidFile = $("#FileUpload")[0].files[0];
data.append("detail", $("#detail").val());
data.append("name", $("#name").val());
data.append("FileUpload", vidFile);
$.ajax({
url: "/home/submitData",
type: "POST",
contentType: false,
processData:false,
data: data,
success: function (response) {
if (response.success == true) {
} else {
}
}
});
有没有办法将验证码也传递给控制器?
为什么不能使用不同的控制器函数进行验证,如下:
提交时,先验证验证码,根据结果调用另一个控制器函数提交数据或显示错误。
var submitData = function(){
var data = new FormData();
var vidFile = null;
if ($("#FileUpload")[0].files.length > 0)
vidFile = $("#FileUpload")[0].files[0];
data.append("detail", $("#detail").val());
data.append("name", $("#name").val());
data.append("FileUpload", vidFile);
$.ajax({
url: "/home/submitData",
type: "POST",
contentType: false,
processData:false,
data: data,
success: function (response) {
if (response.success == true) {
//Success
} else {
//Submission failed
}
}
});
}
var validateCaptcha = function(){
$.ajax({
url: "/home/validateCaptcha",
type: "POST",
data: $("form").serialize(),
success: function (response) {
if (response.success == true) {
submitData();
} else {
alert("Invalid Captcha entry");
}
}
});
}
$("form").submit(function(e){
validateCaptcha();
});