axios封装

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) } } }

  

原文地址:https://www.cnblogs.com/qianxundaozhu/p/10998946.html