// index.js
import _axios from './axios';
export default {
  getData() {
    return _axios('static/index.json');
  }
};
// axios.js
import axios from 'axios';
// 需要使用代理来解决跨域问题
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.timeout = 20000;

// Add a request interceptor
axios.interceptors.request.use(
  (config) => {
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);
export default async (url = '', params = {}, method = 'get', isUpload = false) => {
  method = method.toLowerCase();
  if (method === 'get') {
    let paramArr = [];
    for (let [key, value] of Object.entries(params)) {
      paramArr.push(key + '=' + value);
    }
    if (paramArr.length > 0) {
      url += '?' + paramArr.join('&').replace(/#/g, '%23');
    }
    return new Promise((resolve, reject) => {
      axios
        .get(url)
        .then(
          (response) => {
            resolve(response.data);
          },
          (err) => {
            reject(err);
          }
        )
        .catch((error) => {
          reject(error);
        });
    });
  } else if (method === 'post') {
    let config = {};
    if (isUpload) {
      config = {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      };
    }
    return new Promise((resolve, reject) => {
      axios
        .post(url, params, config)
        .then(
          (response) => {
            resolve(response.data);
          },
          (err) => {
            reject(err);
          }
        )
        .catch((error) => {
          reject(error);
        });
    });
  } else if (method === 'put') {
    return new Promise((resolve, reject) => {
      axios
        .put(url, params)
        .then(
          (response) => {
            resolve(response.data);
          },
          (err) => {
            reject(err);
          }
        )
        .catch((error) => {
          reject(error);
        });
    });
  } else if (method === 'delete') {
    return new Promise((resolve, reject) => {
      axios
        .delete(url)
        .then(
          (response) => {
            resolve(response.data);
          },
          (err) => {
            reject(err);
          }
        )
        .catch((error) => {
          reject(error);
        });
    });
  } else {
    let error = '传递的参数错误';
    return Promise.reject(error);
  }
};

暂无评论