前端和后端交互的时候,前端的小伙伴都离不开 "请求" 。关于"请求"有几种方式来提供使用:Ajax、Axios、Fetch
//利用XMLHttpRequest实现Ajax,实现一个简单get请求
//缺点:此方法实现网络请求时,多个请求之间有先后关系会形成一个回调地狱
<body>
<script>
function ajax(url) {
const xhr = new XMLHttpRequest();
xhr.open("get", url, false);
xhr.onreadystatechange = function () {
// 异步回调函数
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.info("响应结果", xhr.response)
}
}
}
xhr.send(null);
}
ajax('https://smallpig.site/api/category/getCategory')
</script>
</body>
Fetch是一个API,是真实存在的,是基于promise的(ES6之后出现的Fetch)
Fetch特点:
使用promise,不使用回调函数(不形成回调地狱)
采用模块化设计,比如rep,res等对象分散
数据流对象处理数据,提高性能
//Fetach实现的简单请求
<body>
<script>
function ajaxFetch(url) {
fetch(url).then(res => res.json()).then(data => {
console.info(data)
})
}
ajaxFetch('https://smallpig.site/api/category/getCategory')
</script>
</body>
Ajax和Axios对比使用:
axios({
url:'/getUsers',
method:'get',
responseType:'json',
data:{
'a':1,
'b':2
}
}).then(function(response){
console.log(response);
console.log(response.data);
}).catch(function(error){
console.log(error);
})
$.ajax({
url:'/getUsers',
type:'get',
dataType:'json',
data:{
'a':1,
'b':2
},
success:function(response){
console.log(response);
}
})
待完善