ajax向后台发送请求时,可以通过data提交参数,data的数据格式有三种格式:
1)第一种:
格式:
data:{
k1:v1,
k2:v2,
.... }
劣势:只能向后台提交一个参数名对应一个参数值的字符串类型的数据。
优势:结构简单,常用于查询,修改,新增等操作。
2)第二种:
格式:data:k1=v1&k2:v2&....
优势:不但能够向后台提交一个参数名对应一个参数值的数据,
还能向后台提交一个参数名对应多个参数值的数据,常用于多项删除和导出等操作。
劣势:操作麻烦,请求前要进行字符串的拼接,且只能向后台提交字符串类型的数据。
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){...}
});
优势:不但能提交字符串数据,还能提交二进制数据,常用于递交文件。
劣势:操作更加复杂。