anxious数据请求封装以及拦截器
1 /* 做数据请求封装 */ 2 import axios from 'axios' 3 // 1. axios默认配置 4 // axios.defaults.baseURL = 'http://localhost:3000'; 5 // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; 6 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 7 8 9 // axios.create({ 10 // timeout: 1000, 11 // }); 12 13 14 // 2. 开始封装 15 16 const request = ({ 17 // axios选项 18 url, 19 method = 'GET', 20 headers, 21 params, 22 data, 23 withCredentials = false 24 }) => { 25 return new Promise(( resolve,reject ) => { 26 /* 1. 数据请求处理 */ 27 switch ( method) { 28 case 'POST': 29 axios({ 30 url, 31 method, 32 data, 33 headers, 34 withCredentials 35 }).then( res => resolve( res )) 36 .catch( err =>reject( err )) 37 break; 38 39 default: 40 /* get put delete */ 41 axios({ 42 url, 43 method, 44 headers, 45 params, 46 withCredentials 47 }).then( res => resolve( res )) 48 .catch( err => reject( err )) 49 break; 50 } 51 52 /* 2. 拦截器 */ 53 // 添加请求拦截器 54 axios.interceptors.request.use(function (config) { 55 // 在发送请求之前做些什么 56 return config 57 }, function (error) { 58 // 对请求错误做些什么 59 return Promise.reject(error); 60 }); 61 62 // 添加响应拦截器 63 axios.interceptors.response.use(function (response) { 64 // 对响应数据做点什么 65 return response; 66 }, function (error) { 67 // 对响应错误做点什么 68 return Promise.reject(error); 69 }); 70 71 }) 72 } 73 74 75 export default request