ajax向后台发送请求时,可以通过data提交参数,data的数据格式有三种格式:
1)第一种:
1.1格式:data:{ k1:v1,
k2:v2,
.... }
1.2劣势:只能向后台提交一个参数名对应一个参数值的字符串类型的数据。
1.3 优势:结构简单,常用于查询,修改,新增等操作。
2)第二种:
2.1格式:data:k1=v1&k2:v2&....
2.2优势:不但能够向后台提交一个参数名对应一个参数值的数据,
还能向后台提交一个参数名对应多个参数值的数据,常用于多项删除和导出等操作。
2.3 劣势:操作麻烦,请求前要进行字符串的拼接,且只能向后台提交字符串类型的数据。
3)第三种:
格式:data:FormData对象,以传递.xls文件为例。
var 文件名=$("选择器").val();//获取文件名
var suffix=activityFileName.substr(文件名.lastIndexOf(".")+1).toLocaleLowerCase();
//获取文件的扩展名即(.xls)
if(suffix!="xls"){
alert("只支持xls文件");
return;
}
var 文件=$("选择器")[0].files[0];//获取文件
//FormData是ajax提供的接口,可以模拟键值对向后台提交参数;
//FormData不但能提交文本数据,还能提交二进制数据
var formData=new FormData();
formData.append("文件名",文件);
//发送请求
$.ajax({
url:'...',
data:formData,
dataType:'...',
processData:false,//设置ajax向后台提交参数之前,是否把参数统一转换成字符串
contentType:false,//设置ajax向后台提交参数之前,是否把所有的参数统一按urlencoded编码
type:'post',
success:funtion(data){...}
});
优势:不但能提交字符串数据,还能提交二进制数据,常用于递交文件。
劣势:操作更加复杂。