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

axios的介绍及配置多个服务器url

文章目录

  • 1、常用的默认配置的是:baseURL、method、timeout
  • 2、axios配置多个服务器url
  • 3、配置api文件
  • 4、文件中使用

1、常用的默认配置的是:baseURL、method、timeout

① baseURL:设置url的基本结构(请求根地址),域名和协议,再结合属性url某个请求路径,axios会自动将baseURL 和 url 进行拼接,从而得出正确的请求路径。

② method:请求方式 get/post

③ timeout:延时时间(超过多少时间就取消请求)【单位是毫秒】

2、axios配置多个服务器url

// 请求时的基础配置VITE_APP_BASE_URL
export const URLMap = {base: import.meta.env.MODE === 'development'? import.meta.env.VITE_APP_BASE_URL: (window as any).config.VITE_APP_BASE_URL,pdf:import.meta.env.MODE === 'development'? import.meta.env.VITE_APP_BASE_URL_PDF: (window as any).config.VITE_APP_BASE_URL_PDF,
}const REQUESTS : Record<string, AxiosInstance> = {}declare module 'axios' {interface AxiosResponse<T = any> {errorinfo: nulldoc: anytime: anyx: anyy: any}export function create(config?: AxiosRequestConfig): AxiosInstance
}Object.keys(URLMap).forEach((item) => {const REQUEST: AxiosInstance = axios.create({baseURL: URLMap[item],headers: {'Content-Type': 'application/json;charset=UTF-8',},timeout: 300000,withCredentials: item === 'data',})REQUESTS[item] = REQUEST
})// 请求拦截器
Object.keys(REQUESTS).forEach((item) => {REQUESTS[item].interceptors.request.use(async (config: AxiosRequestConfig) => {const headerToken = await getToken()config.headers = config.headers || {}if (headerToken)config.headers.Authorization = headerTokenif (config.headers.type === 'form') {delete config.headers.typeconfig.data = qs.stringify(config.data)config.headers['Content-Type'] = 'application/x-www-form-urlencoded'}return config})
})// 响应拦截器
Object.keys(REQUESTS).forEach((item) => {REQUESTS[item].interceptors.response.use(async (response: AxiosResponse) => {const { status, data = {}, statusText } = responseconst errorText = serverCodeMessage[status] || statusTextconst error = ''if (status)return Promise.resolve(data)message.error(error)return Promise.reject(error)},(error) => {message.error(String(new Error(error)))return Promise.reject(new Error(error))},)
})export default REQUESTS

3、配置api文件

import requests from '@/service/index'export const getAll = (data: paramsInter) => requests.base({url: 'xx/xx',method: 'POST',data,
})
export const get = (data: paramsInter) => requests.pdf({url: 'xx/xx',method: 'POST',data,
})

这样,不同的接口实现从不同的服务器获取资源

4、文件中使用

import { getAll} from '@/service/xx/index'
onMounted(() => {getXX()
})function getXX() {getAll(params).then((res) => {// xxx
}
http://www.lryc.cn/news/223315.html

相关文章:

  • C# OpenCvSharp 通过特征点匹配图片
  • 10个python爬虫入门实例
  • 麒麟KYLINOS命令行设置系统静音
  • 零信任安全:构建无懈可击的网络防护体系
  • 华为李鹏:到 2025 年智能算力需求将达到目前水平的 100 倍
  • 【漏洞复现】深信服下一代防火墙NGAF存在任意文件上传漏洞 附POC
  • 城市内涝积水预防,万宾科技内涝监测仪如何预警?
  • SpringBoot定时任务打成jar 引入到新的项目中后并自动执行
  • AD9371 官方例程 NO-OS 主函数 headless 梳理(一)
  • SHAP 和 LIME 解释模型
  • 若依vue-初步下载使用
  • Android 使用.9图 NinePatchDrawable实现动态聊天气泡
  • 力扣 LCR 024. 反转链表两种解法
  • 掌握Capture One 23 Pro,打造专业级图片编辑体验!
  • MFC-TCP网络编程服务端-Socket
  • ChatGPT辅助下的小组学习
  • Linux相关命令
  • 详解卷积神经网络结构
  • java读取pdf数据
  • arcmap / arcgis 安装教程
  • CMake中的变量: 改变构建行为的变量
  • 台式电脑怎么无损备份迁移系统到新硬盘(使用傲梅,免费的就可以)
  • 【紫光同创国产FPGA教程】【PGC1/2KG第七章】7.数字钟实验例程
  • 【星海随笔】git的使用
  • 安卓常见设计模式------装饰器模式(Kotlin版)
  • 将网站上的点击作为转化操作进行跟踪-官方指导文档
  • Go相关命令说明
  • 3D全景技术,为我们打开全新宣传领域
  • 【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割10(测试推理篇)
  • PyCharm+Miniconda3安装配置教程