对于ajax方法的剖析:
1:普通的格式 路径 参数 回调成功失败
$.ajax({
url:'',
type;'',
data:'',
success:function(){}, 成功 try
error:function(){}, 失败 catch
complete:function(){} 都进 finally
});
2:使用done 和fail 回调函数 格式
$.ajax({
url:'',
type;'',
data:''
}).done(function(){}).fail(function(){})
关于data的参数详解
1:普通文本
var url="uname=alice&mobileIpt=110&birthday=1983-05-12" data:url
2:json对象
date: {uanme:'vic',mobileIpt:'110',birthday:'2013-11-11'}
3:json数组
[
{"name":"uname","value":"alice"},
{"name":"mobileIpt","value":"110"},
{"name":"birthday","value":"2012-11-11"}
]
data:{ "list": JSON.stringify(List)}
处理过后还是{uname:'alice',mobileIpt:'110',birthday:'2012-11-11'} 还是相当于json对象 。
//在ajax()方法中,对json类型的数据进行了$.param()处理如果是json数据,那么挨个循环,只取他们的name属性和value属性拼接字符串
序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。其实就是第三种类型 但是序列化只能序列化表单中的数据 ,
比如文本框等input select等的数据,但是对于文件,比如文件上传,无法实现 ,需要使用FormData
data: new FormData($('#uploadForm')[0]), #id id是form的id 0是索引 第一个是input file控件
控制器接收(HttpPostedFileBase file){} file对应控件的name名字
一般来讲的话附件和别的文本框内容分开来处理
附件使用formdata 直接传控件 里面包含HttpPostedFileBase基类对于文件的一些参数接收
如果传附件外还有参数一起传递
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]); //只需要在<input type="file">里添加multiple或multiple="multiple"属性标签能够上传多个文件,
formData.append('a', 'aaa');
data:formData 传参
没有附件内容serialize()序列化成json数组处理控制器实体接收