Vue中request.js封装及调用示例详解

 更新时间:2023年09月05日 16:07:28   作者:ClearBoth  
这篇文章主要为大家介绍了Vue中request.js封装及调用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

request.js封装

import axios, { AxiosRequestConfig } from "axios";
import qs from "qs";
// 创建axios实例
const instance = axios.create({
  baseURL: process.env.VUE_APP_BASEURL,
  timeout: 6000,
  // headers: {
  //   "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
  // token:
  //   "MTY1Mjk1Mjg4OC42ODM2Nzg0JjJkNzUyOWQwOWU3NTU2OTE0OTU4NzI3ODUxNzkwYTNjZGMwZmRjNjAzNGQ4MGE1YzFkODE1NGVmYzk4MmMyYjM=",
  // },
});
// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 请求头和token判断等
    return config;
  },
  (err) => {
    return Promise.reject(err);
  }
);
//响应拦截器
instance.interceptors.response.use(
  (res) => {
    return res.data;
  },
  (error) => {
    if (error && error.response) {
      switch (error.response.status) {
        case 400:
          error.message = "请求错误(400)";
          break;
        case 401:
          error.message = "未授权,请登录(401)";
          break;
        case 403:
          error.message = "拒绝访问(403)";
          break;
        case 404:
          error.message = `请求地址出错: ${error.response.config.url}`;
          break;
        case 405:
          error.message = "请求方法未允许(405)";
          break;
        case 408:
          error.message = "请求超时(408)";
          break;
        case 500:
          error.message = "服务器内部错误(500)";
          break;
        case 501:
          error.message = "服务未实现(501)";
          break;
        case 502:
          error.message = "网络错误(502)";
          break;
        case 503:
          error.message = "服务不可用(503)";
          break;
        case 504:
          error.message = "网络超时(504)";
          break;
        case 505:
          error.message = "HTTP版本不受支持(505)";
          break;
        default:
          error.message = `连接错误: ${error.message}`;
      }
    } else {
      if (error.message == "Network Error")
        error.message == "网络异常,请检查后重试!";
        error.message = "连接到服务器失败,请联系管理员";
    }
    return Promise.reject(error);
  }
);
//get请求
export function get(url: string, params = {}) {
  return new Promise((resolve, reject) => {
    instance
      .get(url, {
        params: params,
      })
      .then((response) => {
        resolve(response);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
//post请求
export function post(url: string, params = {}) {
  return new Promise((resolve, reject) => {
    instance
      .post(url, qs.stringify(params))
      .then((response) => {
        resolve(response);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
// delete请求
export function deleteFn(url: string, params: AxiosRequestConfig<any> | undefined) {
  return new Promise((resolve, reject) => {
    instance
      .delete(url, params)
      .then((response) => {
        resolve(response);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
// put请求
export function put(url: string, params: any) {
  return new Promise((resolve, reject) => {
    instance
      .put(url, qs.stringify(params))
      .then((response) => {
        resolve(response);
      })
      .catch((err) => {
        reject(err);
      });
  });
}
export default instance;

调用

import { get, post, deleteFn, put } from "../utils/request";
export const login_api = (params: {} | undefined) => {
  return get("/XXXX/xxx", params);
};

在.vue中使用之前先import进来就可以了

以上就是Vue中request.js封装及调用示例详解的详细内容,更多关于Vue request.js封装的资料请关注脚本之家其它相关文章!

相关文章

  • vue中wangEditor5编辑器的基本使用

    vue中wangEditor5编辑器的基本使用

    wangEditor是一个轻量级web富文本编辑器,配置方便,使用简单,下面这篇文章主要给大家介绍了关于vue中wangEditor5编辑器的基本使用,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 详解vue-cli脚手架中webpack配置方法

    详解vue-cli脚手架中webpack配置方法

    这篇文章主要介绍了详解vue-cli脚手架中webpack配置方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Vue结合路由配置递归实现菜单栏功能

    Vue结合路由配置递归实现菜单栏功能

    这篇文章主要介绍了Vue结合路由配置递归实现菜单栏,本文通过实例代码给大家介绍的非常详细,对大家的学习火锅工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • vue实现打地鼠小游戏

    vue实现打地鼠小游戏

    这篇文章主要为大家详细介绍了vue实现打地鼠小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • webpack4+express+mongodb+vue实现增删改查的示例

    webpack4+express+mongodb+vue实现增删改查的示例

    这篇文章主要介绍了webpack4+express+mongodb+vue 实现增删改查的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • el-table点击某一行高亮并显示小圆点的实现代码

    el-table点击某一行高亮并显示小圆点的实现代码

    这篇文章主要介绍了el-table点击某一行高亮并显示小圆点,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • vue中使用iview自定义验证关键词输入框问题及解决方法

    vue中使用iview自定义验证关键词输入框问题及解决方法

    这篇文章主要介绍了vue中使用iview自定义验证关键词输入框问题及解决方法,本文通过实例结合代码的形式给大家介绍解决方法,需要的朋友可以参考下
    2018-03-03
  • vue实现页面内容禁止选中功能,仅输入框和文本域可选

    vue实现页面内容禁止选中功能,仅输入框和文本域可选

    今天小编就为大家分享一篇vue实现页面内容禁止选中功能,仅输入框和文本域可选,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 在vue项目中使用codemirror插件实现代码编辑器功能

    在vue项目中使用codemirror插件实现代码编辑器功能

    这篇文章主要介绍了在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 使用异步组件优化Vue应用程序的性能

    使用异步组件优化Vue应用程序的性能

    这篇文章主要介绍了使用异步组件优化Vue应用程序的性能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04

最新评论