• vue项目封装axios请求的get、post、put、delect请求


    第一步:在src目录下新建service文件夹,文件夹下新建api.js和http.js

     第二步:http.js中封装axios请求,可以复制如下代码

    import axios from 'axios'
    import Qs from 'qs';
    import {Message} from 'element-ui';

    // 环境的切换:开发,测试,生产
    if (process.env.NODE_ENV === 'development') {
      axios.defaults.baseURL = 'http://10.100.14.181:8081'
    } else if (process.env.NODE_ENV === 'debug') {
      axios.defaults.baseURL = ''
    } else if (process.env.NODE_ENV === 'production') {
      axios.defaults.baseURL = ''
    }
    axios.defaults.timeout = 5000
    // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8;multipart/form-data'
    axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';

    // // 请求拦截器
    axios.interceptors.request.use(config => {
      // 在发送请求之前做些什么 验证token之类的
      return config;
    }, error => {
      // 对请求错误做些什么
      
      Message.error({message: '请求超时!'})
      return Promise.error(error);
    })
      
    // 响应拦截
    axios.interceptors.response.use(response => {
      // 对响应数据做点什么
      
      return response;
    }, error => {
      // 对响应错误做点什么
      
      return Promise.reject(error);
    });

    // 封装get方法和post方法
      
    /**
     * get方法,对应get请求
     * @param {String} url [请求的url地址]
     * @param {Object} params [请求时携带的参数]
     */
    export function get(url, params) {
      return new Promise((resolve, reject) => {
        axios.get(url, {
          params: params
        }).then(res => {
          resolve(res.data);
          // Loading.service(true).close();
          // Message({message: '请求成功', type: 'success'});
        }).catch(err => {
          reject(err.data)
          // Loading.service(true).close();
          Message({message: '加载失败', type: 'error'});
        })
      });
    }
      
    /**
     * post方法,对应post请求
     * @param {String} url [请求的url地址]
     * @param {Object} params [请求时携带的参数]
     */
    export function post(url, params) {
      return new Promise((resolve, reject) => {
        axios.post(url, params)
          .then(res => {
            resolve(res.data);
            // Loading.service(true).close();
            // Message({message: '请求成功', type: 'success'});
          })
          .catch(err => {
            reject(err.data)
            // Loading.service(true).close();
            Message({message: '加载失败', type: 'error'});
          })
      });
    }
      
    /**
     * post方法,参数序列化
     * @param {String} url [请求的url地址]
     * @param {Object} params [请求时携带的参数]
     */
    export function qspost(url, params) {
      return new Promise((resolve, reject) => {
        axios.post(url, Qs.stringify(params))
          .then(res => {
            resolve(res.data);
            // Loading.service(true).close();
            // Message({message: '请求成功', type: 'success'});
          })
          .catch(err => {
            reject(err.data)
            // Loading.service(true).close();
            Message({message: '加载失败', type: 'error'});
          })
      });
    }
      
      
    /**
     * put方法,对应put请求
     * @param {String} url [请求的url地址]
     * @param {Object} params [请求时携带的参数]
     */
    export function put(url, params) {
      return new Promise((resolve, reject) => {
        axios.put(url, params)
          .then(res => {
            resolve(res.data);
            // Loading.service(true).close();
            // Message({message: '请求成功', type: 'success'});
          })
          .catch(err => {
            reject(err.data)
            // Loading.service(true).close();
            Message({message: '加载失败', type: 'error'});
          })
      });
    }
      
      
    /**
     * delete
     * @param {String} url [请求的url地址]
     * @param {Object} params [请求时携带的参数]
     */
    export function deletefn(url, params) {
      return new Promise((resolve, reject) => {
        axios.delete(url, params)
          .then(res => {
            resolve(res.data);
            // Loading.service(true).close();
            // Message({message: '请求成功', type: 'success'});
          })
          .catch(err => {
            reject(err.data)
            // Loading.service(true).close();
            Message({message: '加载失败', type: 'error'});
          })
      });
    }
    第三步:在api.js中统一管理各个页面的接口,如下

     第四步:在页面中调用接口

     完成~

    参考资料来源于:https://www.cnblogs.com/yscec/p/12151263.html

  • 相关阅读:
    memcached stats 命令
    sql server 游标语法
    iis 备份
    在Win7下使用超级任务栏时,将文件夹锁定在超级任务栏打开的默认都是计算机
    微点破解90天
    win7 设置 开始菜单 程序 为经典模式
    设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。
    Java六大必须理解的问题
    Windows不能在本地计算机启动OracleDBConsoleorcl
    更改phpMyAdmin的密码
  • 原文地址:https://www.cnblogs.com/bwnnxxx123/p/14484498.html
Copyright © 2020-2023  润新知