axios的基础封装

1.安装axios

npm install axios

2.在scr目录下创建一个文件夹,eg:api/http

3.在api文件夹下创建2个.js 

4.index.js

import axios from 'axios';

import { ElLoading ,ElMessage} from 'element-plus'



 
const loading = {
  loadingInstance: null, //loading实例
  // 打开加载
  open: function () {
    // 创建实例,而且会加载窗口
    if (this.loadingInstance === null) {
      //采用单例
      this.loadingInstance = ElLoading.service({
        target: '.main',
        text: '拼命加载中'
      });
    }
  },
 
  // 关闭加载
  close: function () {
    // 不为空时,则关闭加载窗口
    if (this.loadingInstance !== null) {
      this.loadingInstance.close();
    }
    this.loadingInstance = null;
  }
};
const  ajax=axios.create({//自定义axios对象
    baseURL:"https://lianghj.top:8888/api/private/v1/",//基地址
    timeout:3000,
   
})

// 请求拦截器
ajax.interceptors.request.use(
  (config) => {
    // 请求拦截
    // 打开加载窗口
    loading.open();
    // 请求携带token
    const token= config.headers.Authorization=window.localStorage.getItem('token');
    return config;
  },
  (error) => {
    // 关闭加载窗口
    loading.close();
    return Promise.reject(error);
  }
);
 
// 响应拦截器
ajax.interceptors.response.use(
  (response) => {
    // 响应拦截
    // 关闭加载窗口
    loading.close();
 
    // const resp = response.data;
    // 后台正常响应的状态,如果不是2000,说明后台处理有问题
    // if (resp.meta.status!== 200) {
    //   ElMessage({
    //     message: '系统异常',
    //     type: 'warning',
    //     duration: 5 * 1000
    //   });
    // }
    return response;
  },
  (error) => {
    // 关闭加载窗口
    loading.close();
 
    //断网会出现这样的错误 |请求路径错误
// 当请求接口出错时, 进行弹出错误提示, 如 404, 500, 请求超时
// console.log('response error', error.response.status) 
// ElMessage({
//       message: error.message,
//       type: 'error',
//       duration: 5 * 1000
//     });
//     return Promise.reject(error);
  }
);
 



   
  
export default ajax




api.js

需注意(post接口的参数是data)

import ajax from '@/api/index'

export const Login = data => {
    return ajax({
        url: '/login',
        method: 'post',
        data

    })
};
// user列表
export const Users= params => {
    return ajax({
        url: '/users',
        method: 'get',
        params
        
    })
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值