用法
jQuery
$.ajax({
url: url,
success:function(result){
console.log(result);
}
}
$.ajax({
url:url,
method:"POST",
success:function(result){
console.log(result);
}
}
$.ajax({
url:url,
data:{a:10},
success:function(result){
console.log(result);
},
error:function(xhr,status,error){
console.log(error);
}
});
$.ajax({
url:url,
headers:{ contentType: "application/json"},
method:"POST",
data:JSON.stringify({a:10}),
success:function(result){
console.log(result);
}
});
fetch
fetch(url,{
headers:{
'content-type': "application/x-www-form-urlencoded"
},
method:"POST",
body:"a=12&b=33",
})
.then(res=>res.json())
.then(data=>console.log(res))
.catch(e=>{})
fetch(url,{
headers:{
'content-type': "application/json"
},
method:"POST",
body:JSON.stringify({a:100}),
})
.then(res=>res.json())
.then(data=>console.log(res))
.catch(e=>{})
axios
axios({
url: url,
method:"POST",
data:{a:12}
})
.then(res=>console.log(res.data))
axios({
url:url,
method:"POST",
headers:{"Content-Type":"application/x-www-form-urlencoded"},
data:"a=12&b=23"
})
.then(res=>console.log(res.data))
简写
jQuery
jQuery的get和post可以简写:
$.get(url,data,callback)
$.post(url,data,callback)
axios
axios的get/post/put/delete等等都可以简写
axios.post(url,data).then(callback)
文章小结
Jquery Ajax:
- 本身是针对MVC的编程,不符合现在前端MVVM的浪潮
- 基于原生的XHR开发,XHR本身的架构不清晰,已经有了fetch的替代方案
- JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理(采取个性化打包的方案又不能享受CDN服务)
Fetch:
- fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的promise对象。
- Fetch是基于
promise 设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。 - 一定记住fetch不是ajax的进一步封装,而是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象。
axios:
- axios不是原生JS的,需要进行安装
- 它不带可以在客户端使用,也可以在nodejs端使用。Axios也可以在请求和响应阶段进行拦截。
- 同样也是基于
promise 对象的。 - 客户端支持防止CSRF
- 提供了一些并发请求的接口(重要,方便了很多的操作)
总之:推荐使用axios ,主流而且功能强大。
参考资料
**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。
|