vue简单封装axios

安装

npm install axios --save

在需要使用的地方引入axios,然后便可以使用

import axios from 'axios'     //引入

使用

axios({
    headers:{
        Authorization:''      //token
    },
    url: "",             //接口地址
    method: "",          //请求方式
    data: {},            //参数
}).then(res => {
    console.log(res)
})

axios的封装

首先需要单独创建一个axios文件夹,在文件夹下创建index.js

import axios from 'axios'     //引入
 
//这一步的目的是判断出当前是开发环境还是生成环境,方法不止一种,达到目的就行
let baseURL = ''
if(process.env.NODE_ENV=="development"){
  baseURL=''
}else{
  baseURL=''
}
 
let config = {
  baseURL: baseURL,
  timeout: 30000
}
const _axios = axios.create(config)
 
/* 请求拦截器(请求之前的操作) */
_axios.interceptors.request.use(
  config => {
      //如果有需要在这里开启请求时的loading动画效果
      config.headers.Authorization = '';  //添加token,需要结合自己的实际情况添加,
    return config;
  },
  err => Promise.reject(err)
);
 
/* 请求之后的操作 */
_axios.interceptors.response.use(
  res => {
    //在这里关闭请求时的loading动画效果
    //这里用于处理返回的结果,比如如果是返回401无权限,可能会是跳回到登录页的操作,结合自己的业务逻辑写
    if (res.data.code === 401 ) {
        
    }
    return res;
  },
  err => {
    if (err) {
      
    }
    return Promise.reject(err);
  }
);
 
//封装post,get
const http = {
  get(url='',params={}){
    return new Promise((resolve, reject) => {
      _axios({
        url,
        params,
        headers:{'Content-Type': 'application/json;charset=UTF-8'},
        method: 'GET'
      }).then(res => {
        resolve(res.data)
        return res
      }).catch(error => {
        reject(error)
      })
    })
  },
  post(url='',params={}){
    return new Promise((resolve, reject) => {
      _axios({
        url,
        params,
        headers:{'Content-Type': 'application/json;charset=UTF-8'},
        method: 'POST'
      }).then(res => {
        resolve(res.data)
        return res
      }).catch(error => {
        reject(error)
      })
    })
  }
}
//这里解释下为什么headers的Content-Type不与token写在一块,当然也可以写在一块,但是主要是因为上传附件的Content-Type与普通接口的Content-Type不同
 
export default http

然后创建一个api.js

import http from '../axios/index'
​
export function getInfo(params) {
  return http.get('/gay-hmsnew/api-basic/getInfo', params)
}

最后在我们用的页面上

import {getInfo} from './api'
​
.......
methods:{
    getinfo(){
        let params={
            id:''
        }
        getInfo(params).then(res=>{
            console.log(res)
        })
    }
}

                
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值