request.js文件
import axios from 'axios'
import vue from 'vue'
const codeMessage={
200:'服务器成功返回请求的数据',
201:'新建和修改数据成功',
202:'一个请求已经进入后台排队',
204:'删除数据成功',
400:'发出的请求有错误,服务器没有进行新建和修改数据的操作',
401:'用户没有权限(令牌,用户名,密码错误)',
403:'用户得到授权,但是访问是禁止的',
404:'发出的请求针对的是不存在的记录,服务器没有进行操作',
406:'请求的格式不可得',
410:'请求的资源被永久删除,且不会再得到',
422:'当创建一个对象时,发生一个验证错误',
500:'服务器发生错误,请检查服务器',
503:'服务不可用,服务器暂时过载或维护',
504:'网关超时',
}
// 创建axios实例
const service = axios.create({
baseURL: process.env.BASE_API,
timeout: 30000 // 请求超时时间
})
// 添加request拦截器
service.interceptors.request.use(config => {
return config
}, error => {
Promise.reject(error)
})
// 添加respone拦截器
service.interceptors.response.use(
response => {
let res={};
res.status=response.status
res.data=response.data;
<!--return res;-->
if(response.status !== 200){
return Promise.reject('error')
}else{
if(response && response.data){
return res.data
}else{
return {
code:'err',
msg:''
}
}
}
},
error => {
if(error.response == undefined){
return {
code:'err',
msg:'err.response is not defined'
}
}
const {status,statusText,header,data}=error.response;
const errortext = codeMessage[status] || statusText;
if(status === 401){
console.log('>>message:' + errortext)
} else if (status === 403){
console.log('>>message:' + errortext)
}else if (status === 404){
console.log('>>message:' + errortext)
}else if (status === 500){
console.log('>>message:' + errortext)
}else{
return Promise.reject(error)
}
return Promise.reject(error)
}
)
export default service
axios.js文件
import request from '@/until/request'
const $URL=BASE_URL;
const axios={
async get(url,data,config){
try{
let params = {
params:data
};
let res = await request.get($URL+url,params,{
headers:{
'content-type': 'application/json;charset=utf-8'
}
},config);
return res
}catch(e){
console.log(e)
}
},
async post(url,data,config){
try{
let res = await request.get($URL+url,data,{
headers:{
'content-type': 'application/json;charset=utf-8'
}
},config);
return res
}catch(e){
console.log(e)
}
},
async put(url,data,config){
try{
let res = await request.get($URL+url,data,{
headers:{
'content-type': 'application/json;charset=utf-8'
}
},config);
return res
}catch(e){
console.log(e)
}
},
async delete(url,config){
try{
let res = await request.get($URL+url,{
headers:{
'content-type': 'application/json;charset=utf-8'
}
},config);
return res
}catch(e){
console.log(e)
}
}
}