axios
是基于Promise的HTTP请求客户端。可同时在浏览器和node.js中使用
功能特效
- 在浏览器中发送XMLHttpRequests请求
- 在node.js中发送http请求
- 支持Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 自动转换JSON数据
- 客户端支持保护安全免受XSRF攻击
创建Axios
const service = axios.create({
url:' /search' // 必须项目,
method:'get' // 没有指定method ,默认是get
baseURL:''// 请求地址,
timeout:5000 // 请求超时的毫秒数
})
拦截器
// 添加一个请求拦截器
service.interceptors.request.use(async(config:InteralAxiosRequestConfig)=>{
// 在发送请求的时候做些什么
return config
})
// 添加一个响应拦截器
service.interceptors.response.user((response:AxiosResponse)={
// 判断状态码,(状态码是与后端约定的)
let res = respons.data
return res
},
(error:AxiosError)=>{
// 超出状态码会触发该函数
// 对响应错误多点什么
return Promise.reject(error)
}
)
axios 的用例
get post put delete
// get 查询数据 post 添加数据 put 修改数据 delete 删除数据
get 传参
- url 传参(拼接的形式)
axios.get('/search?id=2')
- params传参
axios.get('/search',{params:{id:2}})
- restful 风格传参
axios.get('/search').then(()=>{})
app.get('/axios/:id',(req,res)=>{res.send(res.params.id)})
delete 传参(和get一致)
post 传参,put 传参
- 默认传参
axios.post('/add',{name:'张三',password:'1234567'}).then(()=>{})
- URLSearchParams传参
const data = new URLSearchParams();
data.append('name','张三'); data.append('password','1234567')
axios.post('/add',data).then(()=>{})
const axios = require('axios')
// get 请求
axios.get('/user',{
params:{
ID:44
}
}).then(()=>{
}).catch(()=>{
}).finally(()=>{})
// 支持async await 用法
const getUser = async() =>{
let res = await axios.get('/user?ID=44')
}
//post 请求
axios.post('/search',{
keyWord:'search'
}).then(()=>{})