基于Vue3的Axios异步请求

news/2024/9/23 14:28:58/

基于Vue3的Axios异步请求

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

1. Axios安装与应用

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

2. Axios网络请求封装

在这里插入图片描述

import axios from "axios";
import querystring from "querystring";// 创建一个axios实例
const service = axios.create({baseURL: import.meta.env.VITE_BASE_URL, // url = api url + request urlwithCredentials: true, // 当跨域请求时发送cookietimeout: 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 debugreturn Promise.reject(error);}
)// 响应-拦截器
service.interceptors.response.use(response => {// response包含网络请求响应返回的所有信息return response.status == 200 ? Promise.resolve(response) : Promise.reject(response);},error => {// 处理响应错误console.log(error); // for debugreturn 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,});
}

axiosserverproxy_65">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/, '')}}}}
})

http://www.ppmy.cn/news/1446285.html

相关文章

day18 java ​​​​​​​集合Collection的List和Set

Collection分成List和Set|------Collection|-------List : 存储的元素是有序的并且可以重复|--------ArrayList|--------LinkedList|--------Vector|-------Set : 存储的元素是无序的并且不可以重复|--------HashSet|--------LinkedHashSet|--------TreeSet List接口 List常…

跟我学C++中级篇——内联

一、内联函数 内联函数的定义有各种形式,这里只提一种百度百科上的定义:“在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展&a…

XiaodiSec day038 Learn Note 小迪安全学习笔记

XiaodiSec day038 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day 38 XSS XSS 的最后一节 结合 ctfshow 的题 316 - 331 关 16 题捏 开始 ctfshow 启动 使用 onerror 实践绕过对 script 的过滤 onload 时间能自动载入,加载自动执行 …

asp.net core webapi 写一个可以上传图片的接口,并把图片转成base64

asp.net core webapi 写一个可以上传图片的接口,并把图片转成base64 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using System; using System.IO; using System.Threading.Tasks;namespace YourNames…

论文阅读之MMSD2.0: Towards a Reliable Multi-modal Sarcasm Detection System

文章目录 论文地址主要内容主要贡献模型图技术细节数据集改进多视图CLIP框架文本视图图像视图图像-文本交互视图 实验结果 论文地址 https://arxiv.org/pdf/2307.07135 主要内容 这篇文章介绍了一个名为MMSD2.0的多模态讽刺检测系统的构建,旨在提高现有讽刺检测系…

WEB攻防-PHP特性-piwigoCMS审计实例

前置知识:PHP函数缺陷 测试环境 :piwigo CMS 漏洞URL: 漏洞文件位置:\include \functions_rate.inc.php 漏洞产生入口文件:/picture.php picture.php中接受了一个GET方法action参数,作为switch...case.…

OGG extract进程占据大量虚拟内存导致服务器内存异常增长分析

现象 oracle服务器一节点内存,一个月来持续升高,近一月上涨10%左右。 问题分析 OS内存使用情况 使用内存最大的10个进程如下,PID为279417占用最大的内存。 查询279417,发现是ogg相关进程。 发现ogg的extract进程占用了大量的虚拟内…

Python+Selenium基于PO模式的Web自动化测试框架

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供…