Ajax 是一种异步、无刷新(或者说局部页面刷新)技术。
同步:
现在的大部分请求都是基于同步,所谓同步就是说必须等待请求之后给我返回结果了我才能继续往下操作。好比你要烧水,切菜,做饭。现在是同步,你必须等水烧开再去干其他事情。
异步:
异步就是,请求发送之后,不管你是否返回结果,我继续往下操作。比如,你烧水的同时,不管水烧没烧开,你继续你其他的工作,去切菜。
刷新:
类似我们的 <a></a>标签的点击链接,以及表单元素的提交,都会刷新页面,你会感觉到你们网页闪一下,然后你之前做的操作全没了。好比你刷微博点个赞,然后整个页面刷新了,又是从头开始,或内容都变了(做个比方,不会改变)。
语法:
$.ajax({
url: url,//必需
type: "post",//请求的方式,可选,默认get
contentType:"application/json",//设置请求头,设置发送给服务器的数据格式,contentType默认值是:application/x-www-form-urlencoded,参数在url中,可选
data:JSON.stringify(data),//把要传递的对象(数组)转为json字符串,可选
dataType: "json",//返回格式为json,可选
async:true,//是否为异步,可选,默认是 true 表示异步
beforeSend: function() { //数据加载之前显示loading
//loading显示
//do something
},
success: function(res) { //发送请求成功后,res为成功返回的数据
//do something
},
complete:function(){//数据加载完成之后loading隐藏
//请求完成,loading关闭
//do something
},
error: function() {//请求出错后的处理
//do something
}
})
一些更简单的写法:
1、$.get
$.get("请求地址","请求参数",function(形参){
});
举例:
$.get('/user',{name:'tom',age:19},function(data){
console.log(data);
});
2、$.post
$.post("请求地址","请求参数",function(形参){
});
$.post
与 $.get
用法一模一样,唯一的区别在于这是发送了一个 post 请求
3、$.getJSON
$.getJSON("请求地址","请求参数",function(形参){
});
$.getJSON
和$.get
、$.post
的用法是一致的,但是区别在于,$.getJSON
只能获取 json 格式的数据,其他的无法获取,而 $.get 和 $.post
都可以获取。