zoukankan      html  css  js  c++  java
  • [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)
          })
        })
      }
    }
  • 相关阅读:
    memcache安装 基于Red Hat 7.4
    LNMP源码编译
    LAMP源码编译
    Red Hat 7.4 安装laravel框架 基于xampp集成环境
    PHP 扩展开发检测清单(扩展开发必读)
    20 个 Laravel Eloquent 必备的实用技巧
    [项目推荐] Corcel 让你在 WordPress 中使用 Laravel
    Tumblr:我们是如何从 PHP 5 升级到 PHP 7 的
    PHP / Laravel 月刊 #23
    十个你需要在 PHP 7 中避免的坑
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/11351495.html
Copyright © 2011-2022 走看看