- 创建axios实例
- 设置请求拦截
- 设置响应拦截
- 导出方法实例
注:以下方法是通用版,对于拦截里面的具体处理方法可以根据实际情况自行处理
import axios from 'axios'
// 1.创建axios实例
const request = axios.create({
// 可以配置,也可以不配置
baseurl:'', // 基本路径
timeout: 2000 // 请求时间,超过这个时间就会报错
})
// 2.设置请求拦截
request.interceptors.request.use(
config => {
// 判断是否有token等必须的信息
const loginToken = localStorage.getItem('token')
if(loginToken){
return config
}else{
// 执行返回到登录页得到操作
}
},
// 错误处理
error => {
return Promise.reject(error)
}
)
// 3. 设置响应拦截
request.interceptors.response.use(
response => {
if(response.status === 200){
return reponse
}
return Promise.reject(response.data.message)
},
// 错误处理
error => {
// 可执行不同状态码下对应的错误处理,例如状态码是401表示没有授权
if(error.response && error.response.status === 401){
// 执行返回到登录页得到操作
}
return Promise.reject(error)
}
)
// 4. 导出实例
export default request