request.js 2.6 KB
//引入axios
import axios from 'axios'
//import qs from 'qs'
let cancel
const CancelToken = axios.CancelToken;
//请求拦截器  // 在发送请求之前做些什么
axios.interceptors.request.use(config => {
  //发起请求时,取消掉当前正在进行的相同请求
  // config.headers['x-auth-token'] = '18de1300-c3f2-4365-9f51-62f77614f8c5'
  config.headers['x-auth-token'] = '6840160c-7c45-42c4-8736-805f13487565' //测试地址
  config.data = {
    ...config.data,
   // sysCode: '1001'
  }
  // config.data = qs.stringify(config.data);
  return config
}, error => {
  return Promise.reject(error)
})


//响应拦截器即异常处理,对响应数据做点什么
axios.interceptors.response.use(response => {
  return response
}, err => {
  err.messages='';
  if (err && err.response) {
    switch (err.response.status) {
      case 400:
        err.messages = '错误请求'
        break;
      case 401:
        err.messages = '未授权,请重新登录'
        break;
      case 403:
        err.messages = '拒绝访问'
        break;
      case 404:
        err.messages = '请求错误,未找到该资源'
        break;
      case 405:
        err.messages = '请求方法未允许'
        break;
      case 408:
        err.messages = '请求超时'
        break;
      case 500:
        err.messages = '服务器端出错'
        break;
      case 501:
        err.messages = '网络未实现'
        break;
      case 502:
        err.messages = '网络错误'
        break;
      case 503:
        err.messages = '服务不可用'
        break;
      case 504:
        err.messages = '网络超时'
        break;
      case 505:
        err.messages = 'http版本不支持该请求'
        break;
      default:
        err.messages = `连接错误${err.response.status}`
    }
  } else {
    err.messages = "连接到服务器失败";
  }
  //message.err(err.message)
  //return Promise.reject(err.response)
  return Promise.resolve(err)
})
//基础url前缀
//axios.defaults.baseURL = '/api'

axios.defaults.baseURL = 'http://39.98.54.240:8093/';
//axios.defaults.baseURL = 'http://test.renniting.cn/bcp/';//测试地址
//设置默认请求头
// axios.defaults.withCredentials=true;//让ajax携带cookie

// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.timeout = 10000


function post(url, params) {
  return new Promise((resolve,reject) => {
    axios({
      method: 'post',
      url,
      data: params,
      cancelToken: new CancelToken(c => {
        cancel = c
      })
    }).then(res => {
      resolve(res)
    })
  })
}


export {post}