AJAX中data的三种格式的特点分析

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){...}
});

优势:不但能提交字符串数据,还能提交二进制数据,常用于递交文件。

劣势:操作更加复杂。

猜你喜欢

转载自blog.csdn.net/chenyu_Yang/article/details/140786631