当前位置: 首页 > news >正文

vite vue3配置axios

准备

参考

安装axios

yarn add axios

中文官网
在这里插入图片描述
src下新建request文件夹,该文件下新建index.ts

import axios from 'axios';
import { ElMessage } from 'element-plus';// const errorCodeType = function (code: number): string {
// 	let errMessage: string = '未知错误';
// 	switch (code) {
// 		case 400:
// 			errMessage = '错误的请求';
// 			break;
// 		case 401:
// 			errMessage = '未授权,请重新登录';
// 			break;
// 		case 403:
// 			errMessage = '拒绝访问';
// 			break;
// 		case 404:
// 			errMessage = '请求错误,未找到该资源';
// 			break;
// 		case 405:
// 			errMessage = '请求方法未允许';
// 			break;
// 		case 408:
// 			errMessage = '请求超时';
// 			break;
// 		case 500:
// 			errMessage = '服务器端出错';
// 			break;
// 		case 501:
// 			errMessage = '网络未实现';
// 			break;
// 		case 502:
// 			errMessage = '网络错误';
// 			break;
// 		case 503:
// 			errMessage = '服务不可用';
// 			break;
// 		case 504:
// 			errMessage = '网络超时';
// 			break;
// 		case 505:
// 			errMessage = 'http版本不支持该请求';
// 			break;
// 		default:
// 			errMessage = `其他连接错误 --${code}`;
// 	}
// 	return errMessage;
// };// 配置新建一个 axios 实例
const service = axios.create({baseURL: import.meta.env.VITE_API_URL,timeout: 50000,headers: { 'Content-Type': 'application/json' }
});// 添加请求拦截器
service.interceptors.request.use((config) => {// 在发送请求之前做些什么 token// if (Session.get('token')) {// 	config.headers!['Authorization'] = `${Session.get('token')}`;// }return config;},(error) => {// 对请求错误做些什么return Promise.reject(error);}
);// 添加响应拦截器
service.interceptors.response.use((response) => {// 对响应数据做点什么const res = response.data;return res;// if (res.code && res.code !== 0) {// 	// `token` 过期或者账号已在别处登录// 	if (res.code === 401 || res.code === 4001) {// 		Session.clear(); // 清除浏览器全部临时缓存// 		window.location.href = '/'; // 去登录页// 		ElMessageBox.alert('你已被登出,请重新登录', '提示', {})// 			.then(() => {})// 			.catch(() => {});// 	}// 	return Promise.reject(service.interceptors.response);// } else {// 	return res;// }},(error) => {// 对响应错误做点什么if (error.message.indexOf('timeout') != -1) {ElMessage.error('网络超时');} else if (error.message == 'Network Error') {ElMessage.error('网络连接错误');} else {if (error.response.data) ElMessage.error(error.response.statusText);else ElMessage.error('接口路径找不到');}return Promise.reject(error);}
);// 导出 axios 实例
export default service;

使用

api.get('/users').then((response: AxiosResponse) => {console.log(response.data);}).catch((error: any) => {console.error(error);});// 发送POST请求
api.post('/users', { name: 'John Doe' }).then((response: AxiosResponse) => {console.log(response.data);}).catch((error: any) => {console.error(error);});
http://www.lryc.cn/news/238151.html

相关文章:

  • 使用 C 语言快速排序将字符串按照 ASCII 码升序排列
  • 自动化运维中间件架构概况
  • fractional Brownian Motion driven stochastic integrals
  • c++模式之单例模式详解
  • 【gpts】学算法题[缺失的第一个正数](https://leetcode.cn/problems/first-missing-positive/)
  • 车牌识别 支持12种中文车牌类型 车牌数据集下载
  • Servlet---上传文件
  • 量子计算+物流!“最后一英里”配送难题Unisys成功实时决策
  • 2023年【四川省安全员A证】复审考试及四川省安全员A证考试试题
  • C++刷题 -- 二分查找
  • PHPmail 发送邮件错误 550 的原因是什么?
  • 数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大难点分析
  • www.testfire.nets渗透测试报告
  • 多模态大一统:通向全模态学习和通用人工智能的未来之路
  • 实用篇-ES-DSL查询文档
  • Nacos配置管理
  • 【前端学java】Java中的异常处理(15)完结
  • 深入理解MySQL存储引擎、InnoDB与MyISAM的比较以及事务处理机制
  • webpack 中,filename 和 chunkFilename 的区别
  • gitlab 实战
  • openGauss学习笔记-128 openGauss 数据库管理-设置透明数据加密(TDE)
  • Redis从入门到精通(三)-高阶篇
  • 线性表--队列-1
  • 【开题报告】基于uni-app的汽车租赁app的设计与实现
  • Java实现围棋算法
  • python -opencv 边缘检测
  • Hadoop-- hdfs
  • 《论文阅读》CAB:认知、情感和行为的共情对话生成 DASFAA 2023
  • 审计dvwa高难度命令执行漏洞的代码,编写实例说明如下函数的用法
  • 国科大数据挖掘期末复习——聚类分析