vue简单封装axios

1、在src下新建api文件夹,在api文件夹下新建config.js文件

2、config.js配置如下:

import axios from 'axios';
import qs from 'qs'

//mint UI 框架,若不需要请全部注释掉
import {Indicator, Toast} from 'mint-ui'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';

axios.defaults.baseURL = 'http://testweb.fishing.tianenfishing.cn/fishweb';

// 添加请求拦截器
axios.interceptors.request.use(config => {
  Indicator.open({
    text: '加载中...',
    spinnerType: 'fading-circle'
  })
  return config
},
err => {
  Indicator.close()
  Toast({
    message: '加载超时',
    position: 'middle',
    duration: 3000
  })
  return Promise.reject(err)
})
 
// 添加响应拦截器,响应拦截器会在then/catch处理之前执行
axios.interceptors.response.use(response => {
  let timetp = null
  clearTimeout(timetp)
  timetp = setTimeout(() => {
    Indicator.close()
    clearTimeout(timetp)
  }, 500)
  // 只将请求结果的data字段返回 
  return response.data
},
error => {
  return Promise.reject(error);
  // 发生网络错误后会走到这里
  // promise.resolve("ssss")
})

//返回一个Promise
export function fetch(url, params,type) {
  return new Promise((resolve, reject) => {
    if(type=='post'){
      axios.post(url, qs.stringify(params))
      .then(response => {
          resolve(response.data);
      }, err => {
          reject(err);
      })
      .catch((error) => {
          reject(error)
      })
    } else{
      axios.get(url,{params})
      .then(response => {
          resolve(response.data);
      }, err => {
        reject(err);
      })
      .catch((error) => {
          reject(error)
      })
    }   
  })
}

3、在api文件夹下新建api.js

4、引入config.js

import {fetch} from './config'
export default {
    bindAccount (params) {return fetch(`user/bind`, params, 'post')}
}

5、页面请求需引入api

<script>
import api from '@/api/api';
export default {
    methods: {
        let params = {
        name: this.name,
        mobile: this.phone,
        code: this.code
      }
      api.bindAccount(params).then((res) => {
        console.log(res)
      }).catch((error) => {
        console.log(error)
      })
    }
}
</script>

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值