1.axios的get post delete put各类请求 配合json-server实现数据的post添加 put修改 get查询 delete删除
<body>
<button>get</button>
<button>post</button>
<button>put</button>
<button>delete</button>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.js"></script>
<script>
const btn=document.querySelectorAll('button')
btn[0].onclick=function () {
axios({
method:'GET',
url:'http://localhost:3000/post',
}).then(response=>console.log(response.data))
}
btn[1].onclick=function () {
axios({//post请求添加一个post数据
method:'POST',
url:'http://localhost:3000/post',
data:{
title:"今天是9/14",
author:"xxx"
}
}).then(response=>console.log(response.data))
}
btn[2].onclick=function () {
axios({ //put请求修改数据id3的作者为李四
method:'PUT',
url:'http://localhost:3000/post/3',
data:{
title:"今天是9/14",
author:"李四"
}
}).then(response=>console.log(response.data))
}
btn[3].onclick=function () {
axios({//delete请求删除一个数据 id=1的数据
method:'DELETE',
url:'http://localhost:3000/post/1',
}).then(response=>console.log(response.data))
}
</script>
</body>
2.axios对象 const axs=axios.create({默认配置})
axs.get...axs.post()....axs({
ajax请求})
3.拦截器
请求拦截器
axios.interceptors.request.use(function (confug) {
console.log('请求拦截器 成功')
//此处对发过去的axios请求的配置进行处理 例如 添加一个参数 config.params={a:200}
return confug
},function (error) {
console.log('请求拦截器 失败')
return Promise.reject(error)
})
响应拦截器
axios.interceptors.response.use(function (confug) {
console.log('响应拦截器 成功')
//可以对返回的response进行处理
return confug
},function (error) {
console.log('响应拦截器 失败')
return Promise.reject(error)
})
4.取消请求以及防抖
<button>发送请求</button>
<button>取消请求</button>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.js"></script>
<script>
const btn=document.querySelectorAll('button')
let cancel=null
btn[0].onclick=function(){
if (cancel) cancel()//防抖
axios({
method:'GET',
url:' http://localhost:3000/post',
cancelToken:new axios.CancelToken(function (c) {
cancel=c
})
}).then((response)=>{
cancel=null
})
}
btn[1].onclick=function () {
cancel() //取消请求
}
</script>