美文网首页
axios请求封装

axios请求封装

作者: guoss | 来源:发表于2021-02-24 21:45 被阅读0次

axios封装

import axios from './http';
import qs from 'qs';

const api = {
  async get(url, data) {
    let dataNew = data;
    let time = (new Date()).valueOf();
    if(dataNew) {
      dataNew.time = time
    }
    try {
      let res = await axios.get(url, {
        params: dataNew
      })
      res = res.data
      return new Promise((resolve, reject) => {
        if (res.code === 200) {
          resolve(res)
        } else {
          reject(res)
        }
      })
    } catch (err) {
      alert('服务器出错')
      console.log(err)
    }
  },
  async post(url, data) {
    try {
      let res = await axios.post(url, qs.stringify(data))
      // let res = await axios.post(url, data)
      res = res.data
      return new Promise((resolve, reject) => {
        if (res.code === 200) {
          resolve(res)
        } else {
          reject(res)
        }
      })
    } catch (err) {
      alert('服务器出错')
      console.log(err)
    }
  }
}

export { api }

简单设置本地mock数据

import axios from 'axios'

// axios 配置
axios.defaults.withCredentials = true //是否携带凭据,比如:cookie
axios.defaults.timeout = 6000 //请求超时时间
let interceptorResponse = null
axios.interceptors.response.use((response) => {
  interceptorResponse = response
  if (isInterceptResponse('/dashboard/painter/recommend/list', false)) {
    response.data =
      {
        'msg': 'success',
        'data':
          {
            'recommend_list': [
              {
                'painter_id': '1',
                'link_name': ['环节1', '环节2', '环节3'],
                'style_name': ['风格1', '风格2', '风格3'],
                'recommend_url': 'http://image.japaholic.com/article/images/2017/01/1542.jpg',
                'recommend_reason': '我是推荐理由'
              },
              {
                'painter_id': '2',
                'link_name': ['环节1', '环节2', '环节3'],
                'style_name': ['风格1', '风格2', '风格3'],
                'recommend_url': 'http://image.japaholic.com/article/images/2017/01/1542.jpg',
                'recommend_reason': '推荐理由'
              },
              {
                'painter_id': '3',
                'link_name': ['环节1', '环节2', '环节3'],
                'style_name': ['风格1', '风格2', '风格3'],
                'recommend_url': 'http://image.japaholic.com/article/images/2017/01/1542.jpg',
                'recommend_reason': '推荐理由'
              },
              {
                'painter_id': '4',
                'link_name': ['环节1', '环节2', '环节3'],
                'style_name': ['风格1', '风格2', '风格3'],
                'recommend_url': 'http://image.japaholic.com/article/images/2017/01/1542.jpg',
                'recommend_reason': '推荐理由'
              },
            ]
          },
        'code': 200
      }
  }
function isInterceptResponse (url, isIntercept = true) {
  if (!isIntercept) {
    return false
  }
  // && interceptorResponse.status === 404
  if (interceptorResponse.request.responseURL.indexOf(url) !== -1) {
    return true
  }
  return false
}

相关文章

网友评论

      本文标题:axios请求封装

      本文链接:https://www.haomeiwen.com/subject/dnjefltx.html