• [web 前端] 封装简单的axios库


    转载自https://blog.csdn.net/qq_35844177/article/details/78809499

    1.新建http.js文件,封装axios get post 方法

    import axios from 'axios'
    import qs from 'qs'
    import 'es6-promise'
     
    axios.defaults.baseURL = '/api';
     
    export function get(url, params) {
      return new Promise((resolve, reject) => {
        axios.get(url, {
          params: params
        }).then(res => {
          resolve(res.data)
        }).catch(err => {
          reject(err)
        })
      })
    }
     
    export function post(url, data) {
      return new Promise((resolve, reject) => {
        axios.post(url, qs.stringify(data), {
            headers: {
              'Content-Type': 'application/x-www-form-urlencoded',
            }
          }
        ).then(res => {
          resolve(res.data)
        }).catch(err => {
          reject(err)
        })
      })
    }

    2.新建api.js文件,封装调用的接口

    import {get, post} from './http'
     
    export function getNewPublish() {
      const result = get('/ad/newestPublishAdMaterialInfo1');
      return result;
    }

    3.在组件中使用

    import {getNewPublish} from '../../api/api'
     
    let result = getNewPublish();
     
    result.then(res => {
       console.log(res);
    }).catch(err => {
       console.log(err);
    })

    4.加拦截器的封装

    import axios from 'axios'
    import qs from 'qs'
    import {Toast} from 'antd-mobile'
     
    axios.defaults.baseURL = '/api';
     
    // 拦截请求
    axios.interceptors.request.use(function (config) {
      Toast.loading('加载中', 0);
      return config
    });
     
    // 拦截相应
    axios.interceptors.response.use(function (config) {
      Toast.hide();
      return config
    });
     
    export default class Http {
      static get(url, params) {
        return new Promise((resolve, reject) => {
          axios.get(url, {
            params: params
          }).then(res => {
            resolve(res.data)
          }).catch(err => {
            reject(err)
          })
        })
      }
     
      static post(url, params) {
        return new Promise((resolve, reject) => {
          axios.post(url, qs.stringify(params), {
              headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
              }
            }
          ).then(res => {
            resolve(res.data)
          }).catch(err => {
            reject(err)
          })
        })
      }
    }
  • 相关阅读:
    poj 2481
    poj 3928 Ping pong
    再见oi
    NOIP 2014 解方程
    poj1836:Alignment
    poj2479:Maximum sum
    tyvj1510:专家复仇
    tyvj:P1467 通向聚会的道路
    tyvj1176: 火焰巨魔的惆怅
    tyvj1326:剑人合一
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/11351495.html
Copyright © 2020-2023  润新知