在ajax中data主要有几种方式
1. 在ajax中data主要有几种方式?
三种,html拼接的,json数组,form表单经serialize()序列化的。
form表单经serialize()作用:对表单元素进行序列化处理,得到编码后的字符串
使用方式:可是获取整个form表单的序列化值也可以获取单独某个表单元素的序列值参数:无参数
HTML缺点:拼接麻烦 还容易拼错 可维护性差
Json优缺点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端javascript可以简单的通过eval()进行JSON数据的读取
缺点:
1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性2. JSON格式目前在Web Service中推广还属于初级阶段PS: 据说Google的Ajax是使用 JSON+模板 做的
用ajax请求后台接口数据,需要用data属性传值的时候,data属性传值的方式感觉没有统一用一种方式 后来仔细想想,其实哪种方式都可以,主要还是看你的个人习惯或者公司对这一块是否有明确的用法规定。
//第一种写法(把参数拼接在URL中,data属性设为空{ })
function
getFormInfo(){
var name='wen';
var user='chen';
$.ajax({
url:"/login/authenticate?name="+name+"&user="+user,
type: "POST",
data:{},dataType: "json",
success: function(data){ },
error:function(err){
console.log(err.statusText);
console.log('异常'); }
});
}
//第二种写法(参数写成json数据形式)
function getFormInfo(){
$.ajax({
url:
type: "POST",
data:{
name:'chem',
user:'wen'
},
cache:false,
dataType: "json",
success: function(data){
},
error:function(err){
}
});
}
第三种写法(根据表单id属性,把表单封装数据,调用JQuery的serialize()方法序列化为字符串)
前提是:发送请求的必须是一个form表单,而且表单内要做参数的标签必须具有name属性,因为name属性会被认为请求参数名
//代码如下
function getFormInfo(){
var params=$('#login').serialize(); //把id为login的form表单里的参数自动封装为参数传递
console.log(params);
$.ajax({
url:
type: "POST",
data:params,
cache:false,
dataType: "json",
success: function(data){
},
error:function(err){
}
});
}
//第四种写法(拼接data)
function getFormInfo(){
var name='chen';
var user='wen';
$.ajax({
url:
type: "POST",
data:'name='+name+'&user='+user,
cache:false,
dataType: "json",
success: function(data){
},
error:function(err){
}
});
}
五:form表单经serialize()序列化的。
$('#form1').serialize()
注:data不需要传值的时候,data:{},就可以了。也可以不写,但为了规范,最好还是写上。