【面试题】:axios二次封装都进行了哪些配置以及如果项目里面有两个baseURL你怎么解决?

2023-11-01

一.axios的概念

        Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

二.axios的特点(不常问)

  • 从浏览器创建 XMLHttpRequests
  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换JSON数据
  • 客户端支持防御XSRF

三.项目中axios二次封装怎么做的?

我们项目里面是通过axios.create()方法创建了一个axios实例,配置了请求的根地址baseURL和timeout

(1) timeout设置成0是什么意思
请求超时就会执行错误的代码(.catch里面的代码)

四.如果项目里面有两个baseURL你怎么解决?

①使用请求拦截器
明确vue环境变量中的baseURL地址
修改axios请求拦截
发起请求时 按需传递requestBase的配置即可
适用场景:产品后期迭代新引入后端模块,base地址不同

②使用多个axios实例(不推荐)
适用场景:产品后期迭代新引入后端模块,base地址不同
弊端:代码冗余大

③不使用baseURL 把地址写全(不推荐)
适用场景:产品开发前期,不明确多少个base地址

④使用对象键值对指代baseURL
适用场景:产品开发前期,明确了多个base。若处于项目后期,则不推荐。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【面试题】:axios二次封装都进行了哪些配置以及如果项目里面有两个baseURL你怎么解决? 的相关文章

  • 在 Vue 3 的生产构建过程中从 Vue 模板中删除所有数据测试属性

    我在 TS 中使用 Vue3 最后一个 vue cli 我想在 vue loader 编译 vue 文件时获取所有节点 vnodes 元素 我需要读取节点属性并删除所有 数据测试 我尝试在 vue config js 中使用 module
  • Internet Explorer 中的 AJAX 问题

    这在 FF safari chrome 和 opera 中工作得很好 但在 IE 中却不行 错误代码是403 var datau trends php 3Frastgele 3D33 ajax type GET url loader php
  • 如何封装Vuejs项目中的常用功能?最佳实践

    我正在开发一个使用 Vuejs 作为前端的中型项目 我正在探索的封装 分离可能在许多组件中使用的常用方法的选项包括 mixins 方法和插件方法 混合方法我必须在每个要使用 mixin 方法的组件 文件 中编写一条 import 语句 由于
  • Vue.js - 当标头中使用 multipart/form-data 时,axios 中的文件上传验证失败

    我正在构建一个 Laravel Vue js SPA 单页应用程序 BootstrapVue https bootstrap vue js org Vee验证 https logaretm github io vee validate gu
  • 在 Vue.js 2.0 中实现 v-model 格式化的正确方法是什么

    举个简单的例子 输入货币数据的文本框 要求是以 1 234 567 格式显示用户输入并删除小数点 我尝试过 vue 指令 当 UI 由于其他控件而刷新时 不会调用指令的 update 方法 因此文本框中的值将恢复为没有任何格式的值 我还尝试
  • 我应该如何处理 Vuex 中的事件?

    我习惯使用全局事件总线来处理跨组件方法 例如 var bus new Vue Component A bus emit DoSomethingInComponentB Component B bus on DoSomethingInComp
  • 将 Json 数据返回给 Ajax 调用

    我在 MVC 中有一个方法 我将其发布到它 并且我需要返回一些数据以进行处理 这是我发布到的 MVC 方法 返回值是 json 数据 HttpPost public JsonResult GetCalculateAmortizationSc
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • Dojo“正在加载”消息

    我是 Dojo 新手 所以我需要一些帮助 我的一些链接需要一段时间 当用户单击时 页面开始加载需要几秒钟 我想添加一条 正在加载 消息 我可以用 旧时尚方式 来做 但我想学习新的 更简单 更智能的 Dojo 方式 具体如何工作现在并不重要
  • Nuxt JS 插件是否可以只运行一次?

    我有几个 VueX 操作 仅在服务器上运行 并从nuxtServerInit 它们向外部服务发出 HTTP 请求 这会减慢 TTFB 的速度 我想实现一个缓存插件 可以从 Redis 存储和检索值 目的是避免在每个请求的操作中发出 HTTP
  • Vue Router - 使用 Vue 2 Composition API 获取路由参数

    我正在使用Vue 2 组合 API https github com vuejs composition api并想从我的 Vue Router 访问路由参数setup method 如中所述Vue 路由器文档 https next rou
  • 邮件附件媒体类型错误 Gmail API

    我正在尝试通过 Javascript 客户端中的 Gmail API 发送带有附加 jpeg 文件的消息 到目前为止我写的代码如下 ajax type POST url https www googleapis com upload gma
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • 使用jquery和coldfusion cffile上传多个文件

    不是一个真正的问题 只是想将其发布在某个地方 因为我在其他地方找不到它 现在我已经拼凑了一个工作演示 我想我会分享 这在 Coldfusion 和 Railo CFML 服务器上同样有 效 问题是 对于 CFML 开发人员来说 CFFILE
  • 通过ajax执行后期操作时如何克服CORS重定向问题?

    我可以通过外部登录表单中的 post 方法类型提交表单来登录 roundcube 实例 托管在另一台服务器上 我收到此错误 通过 ajax 签名时 XMLHttpRequest 无法加载https 192 168 0 7 mail http
  • 当 p:ajax event=change 时,如何禁用 selectOneMenu 上所需的标记?

    这是我的配置 PrimeFaces 4 0 4 精英 OmniFaces 1 6 3 JSF MyFaces 2 0 2 服务器 WebSphere 8 5 0 2 一些代码 为了更清楚我只发布相关部分
  • Vue 组件方法未在动态 HTML 中的事件上运行

    我正在尝试动态创建一些 HTML 内容并将 Vue 组件方法绑定到元素上的事件 然而这不起作用 下面是问题的描述和测试用例的片段 重现问题的步骤 Click 点我1 观察控制台 Click 切换工具提示的弹出框 Click 点我2 观察控制
  • Vue模板-渲染HTML特殊字符代码

    如何在我的 Vue 模板中完全渲染 HTML 特殊字符代码 例如我有这个 JSON 数据 id post91 slug null title Breakfast 038 Tea 我怎样才能转换Breakfast 038 Tea to Bre
  • phonegap:基于 cookie 的身份验证 (PHP) 不起作用 [webview]

    我正在开发一个移动网络应用程序 使用 sencha touch HTML5 和 Phonegap 作为包装器 我正在使用 PHP 身份验证 Cookie 和 ajax 请求 在 safari 或 chrome 上一切正常 但在使用phone
  • $vuetify.goTo 不会在 v-card 组件内滚动

    我有一个带有 v 卡的组件 我在卡片标题区域放置了一个简单的按钮 当我单击时 我看到该方法被触发 它显示在控制台中 但是 卡片永远不会滚动 如果我输错了类名 则会收到错误 因此 goTo 似乎会执行某些操作 因为它找不到该类 没有拼写错误

随机推荐

  • 最大子阵列-计蒜客

    在一个数组中找出和最大的连续几个数 至少包含一个数 例如 数组A 2 1 3 4 1 2 1 5 4 则连续的子序列 4 1 2 1 有最大的和6 输入格式 第一行输入一个不超过1000的整数n 第二行输入n个整数A i 输出格式 第一行输
  • 统计学习之时间序列分析

    一 什么是时间序列 1 定义 按照时间的顺序把一个随机事件变化发展的过程记录下来 就构成了一个时间序列 对时间序列进行观察 研究 找寻它变化发展的规律 预 测它将来的走势就是时间序列分析 2 栗子 7000年前 古埃及人把尼罗河涨落的情况逐
  • (C++)类与对象——封装

    目录 封装的基础与意义 1 类的创建与调用 类的案例 学生类的创建 封装的意义 封装是C 中面向对象的三大特性之一 1 属性与行为 2 权限 class和struct的区别 struct创建时 结构体内的成员默认属性都是 public cl
  • 获取鼠标位置插入字符串

    str 指的是插入的字符串 id为textarea function setStr str id var tc id var tclen tc val length tc focus if typeof document selection
  • ubuntu 20.04 设置不见了

    ubuntu20 04 用着用着突然发现设置不见了 即使重启电脑还是找不到设置 后来通过扒帖子发现是一个包丢失了 gnome control center 重新安装一个这个包就好了 sudo apt install gnome contro
  • echarts各种调整样式(史上最全)

    Echars各种样式调整 史上最全 全图默认背景 backgroundColor rgba 0 0 0 0 默认色板 color ff7f50 87cefa da70d6 32cd32 6495ed ff69b4 ba55d3 cd5c5c
  • php发送邮件验证码,PHP(ThinkPHP5.0) + PHPMailer 进行邮箱发送验证码

    GitHub下载最新版第三方类库PHPMailer 第一步 打开网址https github com PHPMailer PHPMailer 下载PHPMailer PHPMailer 需要 PHP 的 sockets 扩展支持 而登录 Q
  • 动手深度学习:计算机视觉——语义分割

    目录 图像分割和实例分割 Pascal VOC2012 语义分割数据集 预处理数据 自定义语义分割数据集类 读取数据集 整合所有组件 转置卷积 填充 步幅和多通道 与矩阵变换的联系 使用矩阵乘法来实现卷积 使用矩阵乘法来实现转置卷积 使用全
  • 使用MATLAB绘制二元函数图像

    使用matlab绘制一个二元函数的图像 首先得告诉计算机 函数的定义域和值域 以及绘制精度 点数 然后使用meshgrid 函数划分网格 然后计算机根据你给定的函数 如Z f x y 计算每个点的取值 然后利用绘图函数 如surf 或mes
  • 在线生成免费android ios图标

    记录一个比较好用的网址 可以用来一键生成android iOS图标 且iOS图标百分百匹配 一 先上链接 https icon wuruihong com 二 点击上传 选择平台android ios 三 点击开始生成 预览 四 下载所需图
  • 提权_【CVE-2017-16995】 Linux 内核漏洞提权

    1 信息收集 上传信息收集脚本 运行并查看是否有 CVE 2017 16995 漏洞 这里我用到的信息收集脚本为 linux exploit suggester 2 pl perl linux exploit suggester 2 pl
  • R语言数据分析报告 鲍鱼年龄预测

    鲍鱼年龄预测 一 背景与目标 鲍鱼的生长在贝类家族中属于比较慢的种类 从受精卵开始 长到商品规格6 8厘米 通常需要1 4年甚至更长时间 以我国的皱纹鲍为例 大约需要近3年的生长才能达到7厘米左右 鲍鱼的生长速度随年龄的增长呈下降趋势 鲍鱼
  • 为什么计算机要使用反码/补码

    一 为什么需要反码 反码的作用就相当于数学中的负数 对于小学生来说 会做的算术题是 5 3 但是不会做3 5 于是 我们上初中的时候 数学里就引进了一个新的概念 负数 引入负数之后 本来是减法的运算就可以变成加法来实现 3 5 3 5 2
  • 冒泡排序和快速排序(C语言实现)

    冒泡排序 实现思想 升序 将数组最大值一步一步交换到数组末尾 该值完成排序 需排序区间 1 继续找需排序区间最大值交换到末尾 直到需排序区间只有一个数 整个数组就有序了 动图演示 void Swap int a int b 交换函数 int
  • qt学习笔记6(线程的同步、互斥,线程中的信号与槽,线程与主页面通讯方式,信号和槽的连接方式,线程和对象的生命周期)

    一 线程和进程的区别 线程启动和结束的方式 1 线程的启动 线程的启动方式有上图所示两种 第一种 run 函数 在直接利用对象调用类中的 run 函数 就相当于效对象中的函数 这时候的run 函数并不是线程中的函数 第二种使用 start
  • vue.js--模板语法

    vue是一种比较流行的前端框架 目标是通过尽可能简单的API实现相应的数据绑定和组合的视图组件 轻量的框架 只聚焦于试图层 可以和其他的库配合使用 看了几集视频看不下去了 还是菜鸟教程适合我 emmm VUE的安装 1 直接 VUE模版语法
  • css设置背景图片缩小,css3 设置背景图片大小(缩略图形式缩小)

    lbrack 译 rsqb libev和libevent的设计差异 本文译自what s the difference between libev and libevent 作者是libev作者 问 两个库都是为异步io调度而设计 在Lin
  • (附源码)计算机毕业设计ssm互联网直播管理系统

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • Log4j2日志分级(error单独输出)

  • 【面试题】:axios二次封装都进行了哪些配置以及如果项目里面有两个baseURL你怎么解决?

    一 axios的概念 Axios 是一个基于 promise 网络请求库 作用于node js 和浏览器中 它是 isomorphic 的 即同一套代码可以运行在浏览器和node js中 在服务端它使用原生 node js http 模块