Vue3:Axios配置及使用

Axios官方

一、安装:

//使用 npm:
$ npm install axios//使用 bower:
$ bower install axios//使用 yarn:
$ yarn add axios

在package-lock.json文件可以查看axios版本

二、配置:

milliaAxios.js 配置axios

import axios from 'axios'
// 创建一个 axios 实例
const milliaAxios = axios.create({timeout: 60000, // 请求超时时间毫秒withCredentials: false, // 异步请求携带cookie//headers: {//	// 设置后端需要的传参类型//	'Content-Type': 'application/json',//	'token': 'your token',//	'X-Requested-With': 'XMLHttpRequest',//},
})//拦截器 请求拦截 
milliaAxios.interceptors.request.use(config => {//根据后端约定执行相关 这里是判断开发/线上环境 存储添加tokenlet token;if(process.env.NODE_ENV==='development'){token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NzM3NDIwOTMsIm5iZiI6MTY3Mzc0MjA5MywiZXhwIjoxNzA1Mjc4MDkzLCJkYXRhIjp7InVzZXJpZCI6Mn19.0lwikSQuFVn8Mdou1gsFpA57XT1DDneFveAe5rbsGsk"}else if(process.env.NODE_ENV==='production'){token = localStorage.getItem('milliaToken_20230612');}else{token = localStorage.getItem('milliaToken_20230612');}//判断是否存在token,根据后端约定在header的authorization都加上token if(token){config.headers.authorization = token}//根据后端约定执行相关 结束return config;
}, error => {console.log(error)return Promise.reject(error);
});//拦截器 响应拦截
milliaAxios.interceptors.response.use(response => {//根据后端约定状态判断执行 这里是判断状态移除tokenif(response.data.status&&response.data.status==-98){localStorage.removeItem('milliaToken_20230612');console.log(response)}else{return response}//根据后端约定状态判断执行 结束}, error =>{return Promise.reject(error.response)
});export default milliaAxios

api.js 接口基地址及接口路径

 附:vue.config.js配置

export default {//接口基地址//代理及基地址Millia: process.env.NODE_ENV == 'development' ? location.protocol + '//' + location.host + '/milliaApi' : 'http://wx.xxxx.xxxx/xxxx/',//其他代理及基地址MilliaOther:process.env.NODE_ENV=='development'?location.protocol+'//'+location.host+'/MilliaOtherApi':'http://xxx.xxxxx.xxx.xxx/',//后台接口//基础接口SAVE_SIGN: '/xxx/index/index/',//其他接口GET_STUDYLIST: '/xxx/other/otherList',//其他接口GET_COURSEINFO: '/xxxx/other/otherInfo',}
//vue.config.jsdevServer: {hot: true, //热加载host: 'localhost',port: 8080, //端口https: false, //false关闭https,true为开启open: true, //自动打开浏览器proxy: {'/milliaApi': {target: 'http://xxx.xxxx/xxx/',ws: true,changeOrigin: true,pathRewrite: {'^/milliaApi': '/'}},/*其他基地址,项目如对接不同基地址数据且需交互http与https,修改public文件夹里的index.html在head中添加<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">*/'/MilliaOtherApi': {target: 'https://xx.xxx.xxxx/xxx',ws: true,changeOrigin: true,pathRewrite: {'^/MilliaOtherApi': '/'}},}},

api.js里的基地址和代理接口 需同vue.config.js的配置一致,即

三、使用:

main.js全局引入

//main.jsimport { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'const app = createApp(App).use(router).use(store);
app.mount('#app')/*全局引入引入axios*/
import milliaAxios from "@/milliaApi/milliaAxios.js"
app.config.globalProperties.$milliaAxios = milliaAxios;//全局引入api
import api from '@/milliaApi/api.js';
app.config.globalProperties.$milliaApi = api/*配置入页面的限制(router.beforeEach进入页面前/router.afterEach进入页面后) */
router.beforeEach((to,from,next)=>{document.body.scrollTop = 0;document.documentElement.scrollTop = 0;window.pageYOffset = 0;if (to.meta.title) {document.title = to.meta.title}next();
});
router.afterEach((to, from) => {
});

 App.vue

<template>
<router-view v-slot="{ Component, route }">
<keep-alive>
<component :is="Component" :key="route.name" v-if="route.meta.keepAlive"/>
</keep-alive>
<component :is="Component" :key="route.name" v-if="!route.meta.keepAlive"/>
</router-view>
</template>
<script setup>
import { useStore } from 'vuex';
import api from '@/milliaApi/api.js';
import milliaAxios from "@/milliaApi/milliaAxios"let params = {}
let baseUrl = api.Millia + api.SAVE_SIGN
milliaAxios.post(baseUrl,params).then(response => {console.log(response.data.data)
})</script>

other.vue

<template>
<div>这是其他页</div>
</template>
<script setup>
import { defineComponent, getCurrentInstance, ref, reactive, computed, onMounted, onActivated, onDeactivated} from 'vue';
import { useStore } from 'vuex';//使用vue的getCurrentInstance 方法获取当前组件实例
const { proxy } = getCurrentInstance()
//获取vuex数据
let store = useStore();//数据获取
const getListData = () => {let baseUrl = proxy.$milliaApi.Millia + proxy.$milliaApi.SAVE_SIGNlet params = {}proxy.$milliaAxios.post(baseUrl, params).then(response => {console.log(response.data.data.data)})
}onMounted(() => {getListData();})
</script>

附:关于Axios发请求(get或post)数据参数问题

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element的Table表格组件树形数据与懒加载简单使用

目录 1. 代码实现2. 效果图3. 解决新增、删除、修改之后树节点不刷新问题。&#xff08;[参考文章](https://blog.csdn.net/weixin_41549971/article/details/135504471)&#xff09; 1. 代码实现 <template><div><!-- lazy 是否懒加载子节点数据 --><!-…

美信科技盘古信息智能车间项目成功验收,打造电子元器件数字化工厂标杆

作为一家深耕于磁性元器件领域近二十年的制造企业&#xff0c;广东美信科技股份有限公司&#xff08;以下简称“美信科技”&#xff09;始终秉承着“为电磁赋能&#xff0c;创工业至美”的企业使命&#xff0c;为中国制造卓越发展贡献力量。在当今数字化时代&#xff0c;制造企…

【C++】深入了解构造函数之初始化列表

目录 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 2&#xff09;不同成员变量赋值 2、初始化列表 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值…

世邦spon IP网络对讲广播系统任意文件上传漏洞

产品介绍 世邦通信IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统存在任意文件上传漏洞&#xff0c;攻击者可以通过构造特殊请求包上传恶意后门文件&#xff0c;从…

深入理解 Flink(一)Flink 架构设计原理

大数据分布式计算引擎设计实现剖析 MapReduce MapReduce 执行引擎解析 MapReduce 的组件设计实现图 Spark 执行引擎解析 Spark 相比于 RM 的真正优势的地方在哪里&#xff1a;&#xff08;Simple、Fast、Scalable、Unified&#xff09; DAG 引擎中间计算结果可以进行内存持…

掌握设计模式:深入了解命令模式的优雅调度与行为解耦

命令模式是一种行为设计模式&#xff0c;其目的是将请求发送者和接收者解耦&#xff0c;从而允许发送者发送请求&#xff0c;而无需知道请求的具体处理方式。在命令模式中&#xff0c;请求被封装为一个对象&#xff0c;这个对象包含了执行请求所需的所有信息&#xff0c;包括调…

解析器:request.body、request.POST、request.data

request.POST与request.body&#xff1a; django中的request.POST只能取到Content-Type(请求头)为application/x-www-form-urlencoded(form表单默认格式)的数据&#xff0c;如果请求头为application/json(json格式)&#xff0c;multipart/form-data(文件)等格式无法取到&#x…

世邦通信SPON IP网络对讲广播系统未授权访问

产品介绍 世邦通信SPON IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统getuserdata.php存在未授权访问漏洞&#xff0c;攻击者可通过该漏洞在服务器端读取账户密码…

软件工程各种图

参考视频&#xff1a; 6 分钟学会 UML 类图_哔哩哔哩_bilibili 5 分钟学会 UML 时序图&#xff08;顺序图、序列图&#xff09;_哔哩哔哩_bilibili 3 分钟学会 UML 活动图_哔哩哔哩_bilibili 6 分钟学会 UML 用例图_哔哩哔哩_bilibili 是真的讲的非常好&#xff01;&#…

Aloha 机械臂的学习记录3——AWE:Pycharm运行代码记录

之前的博客创作了三偏关于Aloha_AWE的liunx终端指令运行代码的示例: Aloha 机械臂的学习记录——AWE&#xff1a;Bimanual Simulation Suite: https://blog.csdn.net/qq_54900679/article/details/134889183?spm1001.2014.3001.5502 Aloha 机械臂的学习记录1——AWE&#x…

Python 与 PySpark数据分析实战指南:解锁数据洞见

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 数据分析是当今信息时代中至关重要的技能之一。…

免费运维工具测评——深入使用牧云主机管理助手

作为一名运维&#xff0c;宝塔&#xff0c;Nezha 监控面板&#xff0c;WinSCP&#xff0c;Termius 都用过了&#xff0c;谈一下自己的感受&#xff1a; 安装绑定 微信扫码可直接登录&#xff0c;主页简洁清晰&#xff0c;即使是个人体验版也没有任何广告。 只需要复制命令在服…

基于神经网络的手写汉字提取与书写评分系统研究

相关源码和文档获取请私聊QQ:3106089953 论文目录结构 目 录 摘 要 I Abstract II 目 录 IV 第1章 绪论 1 1.1. 研究背景与意义 1 1.2. 国内外研究现状 2 1.2.1. 文本定位技术研究现状 2 1.2.2. 手写汉字识别研究现状 3 1.2.3. 汉字书写质量评价方法研究现状 4 1.3. 本文所做工…

Linux驱动开发(1)-最简单的字符设备驱动开发例子

1.简介 字符设备驱动&#xff1a;按照字节流进行读写操作的设备&#xff0c;例如点灯、按键、IIC、SPI、LCD。 Linux系统中一切皆文件&#xff0c;驱动加载成功&#xff0c;就会在/dev目录生成文件&#xff0c;对文件操作&#xff0c;则可实现对硬件操作。应用程序运行在用户…

Leetcode242有效的字母异位词(java实现,详细易懂想学会的进!!!)

今天给大家分享的题目是leetcode242有效的字母异位词 我们先看题目描述&#xff1a; Chatgpt中对于字母异位词的解释如下&#xff1a; 字母异位词是指由相同的字母组成但顺序不同的单词。换句话说&#xff0c;字母异位词具有相同的字母&#xff0c;只是排列顺序不同。 简单的将…

华云安攻击面发现及管理平台体验

省流&#xff1a; 无需【立即咨询】即可体验&#xff0c;开通即可查看演示数据&#xff0c;公开报价 界面&#xff1a; 界面简洁&#xff0c;要点清晰&#xff0c;可以清晰的看到暴露面及攻击面信息 功能&#xff1a; 资产发现&#xff1a;主域名发现、子域名发现、 IP 发现…

Set和Map

一、Set的介绍 1.1、Set相关文档介绍 cplusplus.com/reference/set/set/?kwset 1. set是按照一定次序存储元素的容器 2. 在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每个value必须是唯一的。 set中的元素不能在容器中修改…

时空序列问题的本质和底层逻辑

本质&#xff1a;Still need to polish this. 底层逻辑&#xff1a;Still need to polish this.See you pretty soon. Reference 【时空序列预测】什么是时空序列问题&#xff1f;这类问题主要应用了哪些模型&#xff1f;主要应用在哪些领域&#xff1f;_mb62b92582e5a0a的技…

【算法刷题】Day28

文章目录 1. 买卖股票的最佳时机 III题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. Z 字形变换题干&#xff1a;算法原理&#xff1a;1. 模拟2. 找规律 代码&#xff1a; 1. 买卖股票的最佳时…

我是如何从计算机小白成长为技术专家的(上)?

作为一名程序员&#xff0c;我想大家接触最多的是计算机吧&#xff0c;但是一个从没有接触过计算机的小白&#xff0c;又是如何走上程序员的道路的呢。 农村的孩子&#xff0c;早当家 作为农村出身的孩子&#xff0c;且家里条件也不是非常的好&#xff0c;在我那个年代&#…