axios使用方法学习笔记
2020-06-12 01:51
155 查看
定义
axios是由Promise封装的一个HTTP库,它的主要特点是 1:从浏览器中创建XMLHttpRequests 2:支持Promise API 3:拦截请求和响应 4:转换请求数据和响应数据 5:自动转换JSON数据 6:客户端支持防御XSRF
参考:axios,Ajax,jQuery ajax,axios和fetch的区别
和AJAX的区别是设计模式不同,AJAX的设计模式是MVC,而axios的设计模式是MVVM
具体使用
1: axios默认使用的请求方式是GET请求
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址' }).then(res=>{ console.log(res) }) </script>
2: 使用GET请求方式
不带参数
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址', method:'GET' }).then(res=>{ console.log(res) }).catch(err=>{console.log(err)})//catch通常是捕获客户端请求格式不正确所导致的错误 </script>
简便写法
axios.get('接口文档地址').then(res=>{console.log(res)}).catch(err=>{console.log(err)})
带参数,使用params传参
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址', params:{ id:1, name:'张三' } }).then(res=>{ console.log(res) }).catch(err=>{console.log(err)}) </script>
简便写法
axios.get('接口文档地址',{params:{id:1,name:'张三'}}).then(res=>{console.log(res)}).catch(err=>{console.log(err)})
3:使用POST请求
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址', method:'post' }).then(res=>{ console.log(res) }).catch(err=>{console.log(err)}) </script>
也可以
axios.post('接口文档地址').then(res=>{console.log(res)}).catch(err=>{console.log(err)})
- 带参数请求
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址', method:'post', params:{ id:2, name:'张三' } }).then(res=>{ console.log(res) }) </script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> axios({ url:'接口文档请求地址', data:{ id:2, name:'张三' } }).then(res=>{ console.log(res) }) </script>
简便写法
axios.post('接口文档地址',"id=2&name=张三").then(res=>{console.log(res)})..catch(err=>{console.log(err)})
4:并发请求
axios.all([ axios.get('接口文档地址'), axios.get('接口文档地址',{params:{id:1}}) ]).then(res=>{ console.log(res) }).catch(err=>{ console.log(err) })
将两个请求的数据分隔开
axios.all([ axios.get('接口文档地址'), axios.get('接口文档地址',{params:{id:1}}) ]).then(res=>{ axios.spread((res1,res2)=>{ console.log(res1); console.log(res2); }) }).catch(err=>{ console.log(err) })
5:全局配置
<script> //全局配置 axios.defaults.baseURL='接口文档基地址'; axios.defaults.timeout=5000;//超出5秒就终止请求 //实际调用 axios.get('接口地址').then(res=>{console.log(res)}).catch(err=>{console.log(err)}) <script>
6:axios实例
<script> let newVar=axios.create({ baseURL:'接口文档基地址', timeout:5000 });//实例创建 newVar({ url:'接口地址' }).then(res=>{console.log(res)}).catch(err=>{console.log(err)}) </script>
axios实例可以同时创建多个
7:axios请求拦截器
axios拦截器分为请求拦截器和响应拦截器,根据js自上而下执行的规则,使用请求拦截器我们可以在发起请求时添加动画特效,强制登陆等操作
- 请求拦截器
<script> axios.interceptors.request.use(config=>{ console.log('进入请求拦截器'); console.log(config); return config; },err=>{ console.log(''请求失败) console.log(err) }) axios.get('接口文档地址').then(res=>{console.log(res);}) </script>
- 响应拦截器
<script> axios.interceptors.response.use(config=>{ console.log('进入响应拦截器'); console.log(config); return config;//放行 },err=>{ console.log(''请求失败) console.log(err) }) axios.get('接口文档地址').then(res=>{console.log(res);}) </script>
axios在vue中的封装
//在文件request.js中封装 export function request(config){ let newVar=axios.create({ baseURL:'接口文档基地址', timeout:5000 }); return newVar(config) ; } //调用方法 import {request} from 'request.js的绝对地址' request({url:'接口地址'}).then(res=>{console.log(res)})
参考:axios从入门到入土
相关文章推荐
- 学习笔记: Struts2中使用validate框架对Action的不同方法进行验证
- 我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
- IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法
- 我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
- 黑马程序员之C#学习笔记:使用Stream.BeginRead方法读取FileStream的流内容
- IOS学习笔记(八)之UIActivityIndicatorView(活动指示器视图)的基本概念和使用方法
- java学习笔记---Java中批处理SQL的使用方法(JDBC)
- Mars Android视频学习笔记——01_16_SQLite使用方法
- jQuery学习笔记--jqGrid的使用方法(编辑,删除,更新,新增)
- 【Java学习笔记】使用split()方法分割字符串
- MVC中使用Entity Framework 基于方法的查询学习笔记 (三)
- IOS学习笔记(十)之UIImageView图片视图的基本概念和使用方法
- Java学习笔记2:当构造方法有多个参数时考虑使用Builder
- FMDB 使用方法(学习笔记)
- php cookie使用方法学习笔记分享
- selenium学习笔记- selnium.RunScript(string script) 方法的使用 及有关自动化测试文本编辑器未解决的问题
- 【Android】学习笔记(10)——adb使用方法
- Wireshark使用方法(学习笔记二——查询统计)
- 黑马程序员之C#学习笔记:使用Stream.Read方法从流中读取字节
- NetworkX学习笔记-2-基本使用方法举例