一.axios的概念
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http
模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
二.axios的特点(不常问)
- 从浏览器创建 XMLHttpRequests
- 从 node.js 创建 http 请求
- 支持 Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 取消请求
- 自动转换JSON数据
- 客户端支持防御XSRF
三.项目中axios二次封装怎么做的?
我们项目里面是通过axios.create()方法创建了一个axios实例,配置了请求的根地址baseURL和timeout
(1) timeout设置成0是什么意思
请求超时就会执行错误的代码(.catch里面的代码)
四.如果项目里面有两个baseURL你怎么解决?
①使用请求拦截器
明确vue环境变量中的baseURL地址
修改axios请求拦截
发起请求时 按需传递requestBase的配置即可
适用场景:产品后期迭代新引入后端模块,base地址不同
②使用多个axios实例(不推荐)
适用场景:产品后期迭代新引入后端模块,base地址不同
弊端:代码冗余大
③不使用baseURL 把地址写全(不推荐)
适用场景:产品开发前期,不明确多少个base地址
④使用对象键值对指代baseURL
适用场景:产品开发前期,明确了多个base。若处于项目后期,则不推荐。