首页 > 编程语言 >axios为什么能在浏览器中环境运行又能在node中环境运行?

axios为什么能在浏览器中环境运行又能在node中环境运行?

时间:2024-12-02 09:59:58浏览次数:7  
标签:node Node Axios 浏览器 适配器 js axios 运行

Axios之所以能在浏览器和Node.js环境中运行,是因为它使用了不同的适配器(adapters)来发送HTTP请求。 它能够根据运行环境自动切换适配器。

  • 在浏览器中: Axios使用XMLHttpRequest (XHR)对象发送请求。 这是浏览器内置的API,用于与服务器进行通信。

  • 在Node.js中: Axios使用http或https模块发送请求。 这些模块是Node.js标准库的一部分,提供了服务器端HTTP功能。

简而言之,Axios的核心代码保持不变,但它会根据环境选择不同的底层实现来发送请求。 这使得开发者可以使用相同的API,而无需担心浏览器和服务器之间的差异。

更详细的解释:

Axios内部有一个adapter配置选项。 当你在浏览器中使用Axios时,它会自动检测环境并使用基于XHR的适配器。 当你在Node.js中使用Axios时,它会自动使用基于http/https模块的适配器。

你也可以手动指定适配器,但这通常是不必要的。 例如:

// 在Node.js中强制使用http适配器
const axios = require('axios');
const httpAdapter = require('axios/lib/adapters/http');

axios.defaults.adapter = httpAdapter;


// 在浏览器中强制使用xhr适配器 (通常不需要)
const axios = require('axios');
const xhrAdapter = require('axios/lib/adapters/xhr');

axios.defaults.adapter = xhrAdapter;

这种适配器模式使得Axios具有良好的跨平台兼容性,简化了开发流程。 你只需要编写一次代码,就可以在不同的环境中运行。

标签:node,Node,Axios,浏览器,适配器,js,axios,运行
From: https://www.cnblogs.com/ai888/p/18581076

相关文章

  • axios如何一次发送多个并发请求?
    在前端开发中,Axios提供了几种方法来发送多个并发请求:Promise.all:这是最常用的方法,它接受一个Promise数组作为参数,并返回一个新的Promise。当所有传入的Promise都resolve时,新的Promise才会resolve,并将所有结果以数组形式返回。如果任何一个Promisereject,新的Prom......
  • 移动端如何设置页面以全屏模式运行?
    移动端设置页面以全屏模式运行,主要依靠浏览器提供的API和一些CSS技巧。以下是一些常见的方法:1.使用FullscreenAPI:这是推荐的方法,因为它提供了更标准化和灵活的控制。请求全屏:使用requestFullscreen()方法。这个方法可以在不同的元素上调用,例如document.document......
  • node.js毕设同城绿植商城程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于同城绿植商城的研究,现有研究主要以电商平台的通用模式为主,专门针对同城绿植商城这种特定类型电商的研究较少。在国内外,电商领域已经取得了诸多成果,......
  • [HTML] HTMLCollection vs NodeList
    HTMLCollectionThe HTMLCollection interfacerepresentsagenericcollection(array-likeobjectsimilarto arguments)ofelements(indocumentorder)andoffersmethodsandpropertiesforselectingfromthelist.An HTMLCollection intheHTMLDOMislive......
  • odoo18运行报错问题解决
    File"/Users/melon/.pyenv/versions/3.11.9/lib/python3.11/code.py",line90,inruncodeexec(code,self.locals)File"<input>",line1,in<module>File"/Applications/PyCharm.app/Contents/plugins/python/helpers/p......
  • vue+node后台管理(带预览地址)
    最近在逛开源网站时发现了一个比较实用又简洁的开源后台管理。先贴一下预览地址:点击直达为啥说比较实用呢!来看看它的功能就知道了:用户管理菜单管理角色管理菜单权限角色权限字典管理富文本+图片管理+文件管理等等还有一些比较实用的....用过后台都知道这几个功能的含金量,还......
  • wsl中用qemu运行linux kernel ,ping github.com有问题
    我在qemu上运行我编译的linuxkernel,并尝试在上面用wget安装unixbench(宿主机是wsl)pinggithub.com会失败但是我的dns是可以将github.com解析成功的我尝试ping对应的ip地址,发现是可以的我的/etc的所有文件列在下面了,我现在不知道这究竟是什么原因(猜测可能是wsl的网......
  • node.js毕设乐昌教育局信息管理系统 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景在当今数字化时代,信息管理系统在各个领域都发挥着至关重要的作用。在教育领域,信息管理系统有助于提高教育管理的效率和质量。关于教育局信息管理系统的......
  • node.js毕设陕西非物质文化遗产网站 程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景在国内,随着对传统文化的重视度不断提高,非物质文化遗产的保护与传承受到广泛关注。关于陕西非物质文化遗产的研究,现有研究多集中在文化内涵、传承人的保......
  • node.js毕设体育馆在线预约管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于体育馆在线预约管理系统的研究,现有研究多集中在大型综合性场馆的整体运营管理方面,专门针对包含会员、收银员、教练等多种角色以及场地、器材相关功......