ajax 获取表单数据
ajax 获取表单数据有两种 一种 $("form").serialize(); 另一种 new FormData($("#form")[0]); 首先,前者,只能序列化表单中的数据 ,比如文本框等input select等的数据,但是对于文件,比如文件上传,无法实现,那么这时候,FormData就上场了。
new FormData使用需要有一个注意点,
注意点一:,对于jquery的要求是,好像是 版本1.8及其以上方可支持。
另外该对象不仅仅可以序列化文件,一样可以用作表单数据的序列化,(就是说包含了serialize()的功能);
注意点二:看脚本
$.ajax({
type: ‘POST‘
data: uploadFormData
url: ‘/Artical/Publist‘//TypeError: ‘append‘ called on an ob
contentType: false
async: false
success: function (data) {
if (typeof (data) == undefined) {
alert("用户信息已丢失,请重新登录!"); window.parent().location.href = "/Account/Login";
}
if (data.ErrorMsg == "") {
alert(‘美文发布成功!‘);
} else { alert(data.ErrorMsg); }
}
});
注意红色部分脚本以及说明,
processData: false contentType: false缺少这二者的设置,将会出现 红色部分的错误提示,提交失败。
以下是一个完整的前后台的参考脚本:
var uploadFormData = new FormData($(‘#uploadForm‘)[0]);
//序列化表单,$("form").serialize()只能序列化数据,不能序列化文件
$.ajax({
type: ‘POST‘
data: uploadFormData
url: ‘/Artical/Publist‘//TypeError: ‘append‘ called on an ob
processData: false
contentType: false
async: false
success: function (data) {
if (typeof (data) == undefined) {
alert("用户信息已丢失,请重新登录!"); window.parent().location.href = "/Account/Login";
}
if (data.ErrorMsg == "") {
alert(‘美文发布成功!‘);
} else { alert(data.ErrorMsg); }
}
});
});
}