基本使用
axios({ method: ‘get‘, // get,获取数据;post,提交数据(表单提交以及文件上传);put,更新数据 (提交所有的数据);patch,提交数据 (提交修改的数据);delete,删除数据 url: ‘‘, params: {} }).then(res => { do something })
并发请求
同时进行多个请求,并统一处理返回值,如果在某些场景中我们需要同时依赖两个接口返回的数据,那么我们可以使用并发请求:
axios.all([ // 这里的参数是一个数组,里面包含了axios请求 axios.get(‘url1‘), // 请求的先后顺序就是代码中的顺序 axios.get(‘url2‘) ]).then( axios.spread((res1, res2) => { // spread用来分割返回值 console.log(res1, res2) } ).catch(err => { console.log(err) })
请求拦截器
axios.interceptors.request.use( config => {}, // 在发送请求前的一些处理逻辑 err => {} // 在请求错误后的处理 )
响应拦截器
axios.interceptors.response.use( res => { return res }, // 请求成功后对响应数据做一定的处理 err => { return Promis.reject(err)} // 在响应错误后的处理,可以用catch捕捉 )
axios取消http请求
let api = axios.create({}) // 实例化axios let source = axios.CancelToken.source() // 实例化一个source对象 api.get(‘/data.json‘, { cancelToken: source.token // 请求时携带cancleToken }).then(callback).catch(err => { console.log(err) }) source.cancel(‘message‘) // 调用source的cancel方法取消http请求,并将message以error的形式返回,然后就取消了http请求,并进入到该请求的catch代码块,进行错误处理。
设置全局的默认行为
axios.defaults.timeout = 30000; // 设置超时时间30秒 axios.defaults.validateStatus= status => ((status >= 200 && status < 300) || status == 401); //设置 200-300 和 401 都返回成功
原文:https://www.cnblogs.com/xjy20170907/p/12742405.html