axios.js

import axios from 'axios'

const csrf = document.getElementsByTagName('meta')['_csrf'].content
const csrfHeader = document.getElementsByTagName('meta')['_csrf_header'].content
if( csrf) {
   axios.defaults.headers.common[csrfHeader] = csrf
}

axios.defaults.baseURL = "/aaaa";

axios.defaults.timeout = 30000;

axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';

// 響應攔截器
axios.interceptors.response.use(
  response => {
    // 如果返回的狀態碼爲200,說明接口請求成功,可以正常拿到數據
    // 否則的話拋出錯誤

    if (response.code === 200) {
      return Promise.resolve(response);
    } else {
      let ret = response.data;
      let code = ret.code;
      if(code == 0){
        return Promise.resolve(response);
      }else{
        return Promise.reject(response);
      }
    }
  },
  error => {
    if(error.code == "ECONNABORTED"){
      Message.error({message: '接口訪問超時!'});
    }else{
      Message.error({message: '接口訪問異常!'});
    }
    return Promise.reject(error.response);
  }
);


/**
 * get方法,對應get請求
 * @param {String} url [請求的url地址]
 * @param {Object} params [請求時攜帶的參數]
 */
export function get(url, params) {
  return new Promise((resolve, reject) => {
    axios.get(url, {
      params: params
    }).then(
      res => {
        resolve(res.data)
      }
    ).catch(err => {
      reject(err)
    })
  });
}


/**
  * post方法,對應post請求
  * @param {String} url [請求的url地址]
  * @param {Object} params [請求時攜帶的參數]
  */
 export function post(url, params) {
  return new Promise((resolve, reject) => {
      axios.post(url, params)
      .then(
        res => {
          resolve(res.data)
        }
      ).catch(err => {
        reject(err)
      })
  });
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章