axsio中文文档




第一种封装方法
import axios from 'axios'
import { Base64 } from 'js-base64';
import {ElMessageBox} from 'element-plus'
let instance = axios.create({
responseType:"json",
headers:{'Content-Type':'application/json'}
})
function baseFun(){
const token = localStorage.getItem('token')
const base64 = Base64.encode(token + ':')
return 'Basic ' + base64
}
instance.interceptors.request.use(
config =>{
let token = localStorage.getItem('token')
if(token){
config.headers.Authorization = baseFun()
}
return config
},
err =>{
return Promise.reject(err)
}
)
instance.interceptors.response.use(
response =>{
return response
},
error =>{
if(error.response){
let ERRS = error.response.status
let MSG = error.response.data.msg.msg
let errdata = ERRS == 401 ? MSG : '服务器发生错误'
switch (ERRS){
case 401:
ElMessageBox.alert(errdata, '提示',{
confirmButtonText: '好的',
type:"error"
})
.then(res=>{
window.location.href = '/'
})
.catch(err=>{
window.location.href = '/'
})
break;
}
}
return Promise.reject(error.response.data)
}
)
export default instance
第二种封装方法
import axios from 'axios'
import qs from 'qs'
import iview from 'iview'
axios.defaults.baseURL = 'http://api.myvue.com'
axios.defaults.timeout = 5000
axios.defaults.headers["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"
axios.interceptors.request.use(config => {
console.log(config)
if(config.method == 'post'){
if(!config.data){
config.data = {}
}
config.data = qs.stringify(config.data)
}elseif(config.method == 'get'){
}
return config;
},error => {
return Promise.reject(error)
})
axios.interceptors.response.use(res => {
if(typeof res.data == 'string'){
alert(res.data);
return false;
}
switch(res.data.ret){
case 200:
return res.data.data;
case 300:
break;
default:
iview.Message.error(res.data.msg);
return false;
}
},error => {
return Promise.reject(error)
})
export default axios;