zoukankan      html  css  js  c++  java
  • 2-vue中Axios封装请求

    import axios from 'axios'
    import {Message} from 'element-ui'
    axios.interceptors.request.use(config => {
      return config;
    }, err => {
      Message.error({message: '请求超时!'});
      // return Promise.resolve(err);
    })
    axios.interceptors.response.use(data => {
      if (data.status && data.status == 200 && data.data.status == 500) {
        Message.error({message: data.data.msg});
        return;
      }
      if (data.data.msg) {
        Message.success({message: data.data.msg});
      }
      return data;
    }, err => {
      if (err.response.status == 504 || err.response.status == 404) {
        Message.error({message: '服务器被吃了⊙﹏⊙∥'});
      } else if (err.response.status == 403) {
        Message.error({message: '权限不足,请联系管理员!'});
      } else if (err.response.status == 401) {
        Message.error({message: err.response.data.msg});
      } else {
        if (err.response.data.msg) {
          Message.error({message: err.response.data.msg});
        }else{
          Message.error({message: '未知错误!'});
        }
      }
      // return Promise.resolve(err);
    })
    let base = '';
    export const postRequest = (url, params) => {
      return axios({
        method: 'post',
        url: `${base}${url}`,
        data: params,
        transformRequest: [function (data) {
          let ret = ''
          for (let it in data) {
            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
          }
          return ret
        }],
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      });
    }
    export const uploadFileRequest = (url, params) => {
      return axios({
        method: 'post',
        url: `${base}${url}`,
        data: params,
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      });
    }
    export const putRequest = (url, params) => {
      return axios({
        method: 'put',
        url: `${base}${url}`,
        data: params,
        transformRequest: [function (data) {
          let ret = ''
          for (let it in data) {
            ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
          }
          return ret
        }],
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      });
    }
    export const deleteRequest = (url) => {
      return axios({
        method: 'delete',
        url: `${base}${url}`
      });
    }
    export const getRequest = (url) => {
      return axios({
        method: 'get',
        url: `${base}${url}`
      });
    }

    使用请求的封装

  • 相关阅读:
    硬盘参数你都懂吗?(上)-从案例引发的讨论
    Python 面试题(下)
    Python 面试题(上)
    DNS 原理入门
    从硬盘设计思想到RAID改良之道
    (转)短信vs.推送通知vs.电子邮件:app什么时候该用哪种方式来通知用户?
    (转)移动端主动推送消息原理
    (转)OpenFire源码学习之十七:HTTP Service插件
    (转)openfire插件开发(二) 基于web的插件开发
    (转)openfire插件开发(一)
  • 原文地址:https://www.cnblogs.com/gfbzs/p/12336927.html
Copyright © 2011-2022 走看看