Umi 封装http.js 请求数据

680 阅读1分钟
`
/* eslint-disable guard-for-in */
/* eslint-disable no-restricted-syntax */
import axios from 'axios';

// let baseUrl = null;
// if (process.env.NODE_ENV === 'production') {
//   baseUrl = 'http://172.16.10.30:8088';
// } else {
//   baseUrl = 'http://10.88.9.222:8088';
//   // baseUrl = 'http://10.80.93.142:8088'; // 无效
// }

// axios.defaults.baseURL = baseUrl;
axios.interceptors.request.use(
  (config) =>
    // console.log(config);
    config,
  (error) =>
    // console.log(error);
    Promise.reject(error),
);

axios.interceptors.response.use(
  (response) => {
    const { data, status } = response;
    // console.log(response);
    if (status === 200) {
      return data;
    }
    return Promise.reject(new Error(data.error || 'Error'));
  },
  (error) =>
    // console.log(error);
    Promise.reject(error),
);

export const getRequest = (url, data) => {
  const config = {
    method: 'GET',
    url,
    headers: {
      'Content-Type': 'application/json',
    },
    params: data,
  };
  return axios(config);
};

export const postRequest = (url, data) => {
  const config = {
    method: 'POST',
    url,
    headers: {
      'Content-Type': 'application/json',
    },
    data,
  };
  return axios(config);
};
export const formDataRequest = (url, data) => {
  const config = {
    method: 'POST',
    url,
    transformRequest: [
      (oldData) => {
        // console.log(oldData)
        let newStr = '';
        for (const item in oldData) {
          newStr += `${encodeURIComponent(item)}=${encodeURIComponent(
            oldData[item],
          )}&`;
        }
        newStr = newStr.slice(0, -1);
        return newStr;
      },
    ],
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    data,
  };
  return axios(config);
};

`

这种方式与request的区别,需要自己总结,很相似