基于Vue3的Axios异步请求

基于Vue3的Axios异步请求

  • 1. Axios安装与应用
  • 2. Axios网络请求封装
  • 3. axios网络请求跨域前端解决方案server.proxy

1. Axios安装与应用

Axios是一个基于promise的网络请求库,Axios.js.中文文档:https://axios.js.cn/

  • 安装:npm install --save axios
  • 调用:import axios from "axios";

2. Axios网络请求封装

在这里插入图片描述

  • axios.js
import axios from "axios";
import querystring from "querystring";

// 创建一个axios实例
const service = axios.create({
  baseURL: import.meta.env.VITE_BASE_URL, // url = api url + request url
  withCredentials: true, // 当跨域请求时发送cookie
  timeout: 5000 // 请求超时时间,5000(单位毫秒) / 0 不做限制
});

// 请求-拦截器
service.interceptors.request.use(
  config => {
    if(config.method == 'post') {
      config.data = querystring.stringify(config.data)
    }
    // config包含网络请求的所有信息
    return config;
  },
  error => {
    // 处理请求错误
    console.log(error); // for debug
    return Promise.reject(error);
  }
)

// 响应-拦截器
service.interceptors.response.use(
  response => {
    // response包含网络请求响应返回的所有信息
    return response.status == 200 ? Promise.resolve(response) : Promise.reject(response);
  },
  error => {
    // 处理响应错误
    console.log(error); // for debug
    return Promise.reject(error);
  }
)

export default service;
  • api/index.js
import request from '../axios';

export function getData(data) {
  return request({
    url: '/xxx',
    method: 'post',
    data,
    baseURL: import.meta.env.VITE_BASE_URL,
  });
}

3. axios网络请求跨域前端解决方案server.proxy

详情请见->配置vite

  • vite.config.js
import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig(({ command, mode }) => {
  // 根据当前工作目录中的 `mode` 加载 .env 文件
  // 设置第三个参数为 '' 来加载所有环境变量,而不管是否有 `VITE_` 前缀。
  const env = loadEnv(mode, process.cwd(), '')
  return {
    // vite 配置
    // base:'./',
    define: {
      __APP_ENV__: JSON.stringify(env.APP_ENV),
    },
    plugins: [
      vue(),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      }
    },
    server:{
      proxy: {
        '/api': {
          target: 'http://locallhost:8080',
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, '')
        }
      }
    }
  }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/585069.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Apollo Dreamview+之Studio插件安装

步骤一:登录 Apollo Studio 工作台 登录 Apollo Studio 工作台。 步骤二:获取插件安装链接 在账户信息中,单击 我的服务 。 2. 选择 仿真 页签。 3. 在 插件安装 中单击 生成 ,选择 Apollo 最新版本,并单击 确定 。…

计算机视觉大项目(1)-水果分级系统

项目来源:河北大学计算机视觉课程-杨老师. 一共有四个标题,本篇博客只完成前两问。 目录 实验目的: 实验内容: 实验步骤: 1.水果图像的分割 >掩膜图像Mask 是什么? >改进:去除反光部分的影响 2&#xf…

ES6之rest参数、扩展运算符

文章目录 前言一、rest参数二、扩展运算符 1.将数组转化为逗号分隔的参数序列2.应用总结 前言 rest参数与arguments变量相似。ES6引入rest参数代替arguments,获取函数实参。扩展运算符能将数组转化为参数序列。 一、rest参数 function namelist1() {console.log(ar…

【无标题】场外个股期权多少钱才能做?个人能做吗?

场外个股期权的交易门槛相对较高,主要面向符合特定条件的机构投资者。一般来说,法人或合伙企业等组织参与的,需要满足最近1年末净资产不低于5000万元人民币、金融资产不低于2000万元人民币的条件,并具备3年以上证券、基金、期货、…

【postgresql】实时查询表字段相关数据

需求:数据库设计时候时不时变动,想根据实际编号进行查询表字段相关信息 库表 脚本 原始 优化后 查询 文档

[C++][算法基础]最大不相交区间数量(贪心 + 区间问题2)

给定 𝑁 个闭区间 [𝑎𝑖,𝑏𝑖],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。 输出可选取区间的最大数量。 输入格式 第一行包含整数 &#x1d4…

Servlet(三个核心API介绍以及错误排查)【二】

文章目录 一、三个核心API1.1 HttpServlet【1】地位【2】方法 1.2 HttpServletRequest【1】地位【2】方法【3】关于构造请求 1.3 HttpServletResponse【1】地位【2】方法 四、涉及状态码的错误排查(404……)五、关于自定义数据 ---- body或query String …

【AI写作】未来科技趋势:揭秘DreamFusion的革新力量

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

分享一个网站实现永久免费HTTPS访问的方法

免费SSL证书作为一种基础的网络安全工具,以其零成本的优势吸引了不少网站管理员的青睐。要实现免费HTTPS访问,您可以按照以下步骤操作: 一、 选择免费SSL证书提供商 选择一个提供免费SSL证书的服务商。如JoySSL,他们是国内为数不…

Ubuntu C++ man手册安装及使用

Ubuntu下C++ man手册安装 C++在线文档: http://www.cplusplus.com/reference/ 第一种办法:使用cppman $ sudo apt install cppman 使用方法 第二种办法: 打开网页:GCC mirror sites- GNU Project 点击下图中的突显行链接: Russia, Novosibirsk:

可平滑替代FTP的FTP替代解决方案,具有哪些强大功能?

FTP是一种广泛使用的文件传输协议,主要用于在网络上的计算机之间传输文件。具有以下特点: 1.简单易用:FTP协议相对简单,易于设置和使用,许多操作系统和应用程序都内置了对FTP的支持。 2.广泛的客户端支持&#xff1a…

售价不当人暴涨后,盘点当前更值得入手的SSD

PC 硬件市场本无测,去年 SSD 白菜价到如今彻底反转这一案例,可以说再次给我们狠狠上了一课。 当初被降价冲昏头脑,坚信 SSD 售价还会继续下探做起等等党的同学,看到今年这价格近乎翻倍行情估计得懵逼了吧。 不过既然有等等党&…

基于OpenCv的图像二值图和灰度直方图

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

Python新手入门基础英文笔记

1、字符串的操作 user:用户 name:名称/姓名 attibute:字段/属性 Value:值 2、重复/转换/替换/原始字符号 upper:上面 lower:下面 capitalize:用大写字母写或印刷 title:标题…

「笔试刷题」:求最小公倍数

一、题目 输入描述: 输入两个正整数A和B。 输出描述: 输出A和B的最小公倍数。 示例1 输入: 5 7 输出: 35 示例2 输入: 2 4输出: 4二、思路解析 这道题,也是模拟实现这一大类的一题…

探索的时光 (整数三分)

本题链接:登录—专业IT笔试面试备考平台_牛客网 题目: 样例: 输入 5 3 2 1 2 3 输出 28 思路: 根据题意,已经给出了运算函数 当我们看到这些函数的时候,联想一下,它们的单调性,以…

Adobe PS 2023、Adobe Photoshop 2023下载教程、安装教程

Adobe Photoshop &#xff08;<-下载连接&#xff09;简介&#xff1a; Adobe Photoshop是一款广泛使用的图像处理软件&#xff0c;由Adobe公司开发。它提供了许多强大的工具和功能&#xff0c;可以用于图像编辑、合成、修饰、设计等各个领域。用户可以使用Photoshop来调整…

HotSpot VM概述

许多技术人员只把JVM当成黑盒&#xff0c;要想改善Java应用的性能和扩展性无疑是一项艰巨的任务。若要提高Java性能调优的能力&#xff0c;就必须对现代JVM有一定的认知。 HotSpot VM是JDK 1.3版本之后默认的虚拟机&#xff0c;目前是使用最广泛的Java虚拟机。本文主要介绍HotS…

行为型设计模式

一、责任链设计模式 &#xff08;一&#xff09;概念 使多个对象都有机会处理同一个请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 &#xff08;二&#xf…

算法学习Day1——【数据结构】单调栈

1.什么是单调栈以及单调栈的作用 &#xff08;1&#xff09;定义 顾名思义&#xff0c;单调栈是一个有序的栈&#xff0c;可能从栈顶到栈底单调递增&#xff08;单调递增栈&#xff09;&#xff0c;也有可能从栈顶到栈底单调递减&#xff08;单调递减栈&#xff09;。 &…