axiosパッケージのvue

2000 ワード

/**
 * 
 */
import axios from 'axios'

let base = 'http://192.168.1.112:3000/'

axios.interceptors.request.use((config) => {
  return config
}, (err) => {
  alert('    ')
  return Promise.resolve(err)
})


axios.interceptors.response.use((data) => {
  //         
  return data
}, (err) => {
   //         
  if (err.response.status === 504 || err.response.status === 404) {
    alert('      ')
  } else if (err.response.status === 403) {
    alert('    ,      ')
  } else {
    alert('    ')
  }
  return Promise.resolve(err)
})


export function postRequest(url, params) {
  return axios({
    method: 'post',
    url: `${base}${url}`,
    data: params,
    transformRequest: [function (data) {
      let ret = ''
      for (let it in data) {
        ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
      }
      return ret
    }],
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  })
}

export function uploadFileRequest(url, params) {
  return axios({
    method: 'post',
    url: `${base}${url}`,
    data: params,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

export function putRequest(url, params) {
  return axios({
    method: 'put',
    url: `${base}${url}`,
    data: params,
    transformRequest: [function (data) {
      let ret = ''
      for (let it in data) {
        ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
      }
      return ret
    }],
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
  })
}

export function deleteRequest(url) {
  return axios({
    method: 'delete',
    url: `${base}${url}`
  })
}

export function getRequest(url) {
  return axios({
    method: 'get',
    url: `${base}${url}`
  })
}