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

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.kler.cn/news/136904.html

相关文章:

  • ECharts饼图-饼图纹理,附视频讲解与代码下载
  • Java安全编程:公钥加密和私钥签名的实践指南
  • 【跨平台】ReactNative 入门初探
  • docker环境安装mongoDB实现平滑迁移实战
  • 宇音天下最新力作 | VTX356语音识别合成芯片问世
  • 【数据结构与算法】时间、空间复杂度详解
  • DefaultMQPushConsumer的整体流程
  • windows11系统如何设置锁屏壁纸
  • 中石油勘探院张弢:从业务到架构全面探讨中国石油的数字化转型之路
  • 认识.NET Aspire:高效构建云原生应用的利器
  • Java-类和类的关系
  • 如何用html css js 画出曲线 或者斜线;
  • Flink(六)【DataFrame 转换算子(下)】
  • 一篇文章让你彻底了解Java算法「十大经典排序算法」
  • 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性
  • fast lio 2 保存每一帧的点云PCD和里程计矩阵 Odom 在txt文件
  • 深入探索 PaddlePaddle 中的计算图
  • Wireshark的数据包它来啦!
  • 美容仪器经营小程序商城的作用如何
  • Ajax技术
  • Hive安装配置 - 本地模式
  • SpringBoot——静态资源及原理
  • JS,jQuery常用语法记录
  • C语言冒泡排序
  • git 将本地已有的一个项目上传到新建的git仓库的方法
  • 使用activiti部署提示不是 ‘NCName‘ 的有效值