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
01-10 15:16