一文详解fetch,ajax,axios的区别以及使用_javascript技巧

fetch,ajax,axios这些都是发起前端请求的工具,除了这些外还有jquery的$.ajax。ajax和$.ajax都是基于XMLHttpRequest。

XMLHttpRequest是一种在浏览器中用于与服务器进行异步通信的对象,它是实现 AJAX(Asynchronous JavaScript and XML,异步的 JavaScript 与 XML 技术)的核心。通过 XMLHttpRequest,可以在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。而jquery的$.ajax简化了XMLHttpRequest的使用。

ajax:是最早用于实现异步数据交互的技术,出现时间较早。兼容性非常好,能在所有主流浏览器(包括一些较旧版本的浏览器)中使用。

fetch:是 ES6 引入的新的 API,现代浏览器基本都支持,但在一些旧版本浏览器中需要使用 polyfill 来实现兼容。

axios:是一个基于promise的 HTTP 客户端,用于浏览器和 Node.js。由于是第三方库,使用时需要引入,不过它通过内部处理兼容了不同浏览器,也能在 Node.js 环境使用。

这里使用express框架创建一个简单的node服务,里面有一个接口,以便演示使用。

创建好项目文件夹后在cmd里面输入命令

npm i express

使用cors中间件来配置跨域,安装命令

// 引入 express 模块const express = require('express');// 引入 cors 模块const cors = require('cors'); // 创建 express 应用实例const app = express();// 定义端口号const port = 3000; // 配置 cors 中间件,允许来自 8080 端口的跨域请求const corsOptions = { origin: 'http://localhost:8080',};app.use(cors(corsOptions)); // 定义一个 GET 请求的接口app.get('/api/data', (req, res) => { // 定义要返回的数据 const data = { message: '接口的数据', list: [1, 2, 3] }; // 设置响应头,指定返回的数据格式为 JSON res.setHeader('Content-Type', 'application/json'); // 发送 JSON 数据作为响应 res.send(JSON.stringify(data));}); // 启动服务器,监听指定端口app.listen(port, () => { console.log(`服务器正在运行,访问地址为 http://localhost:${port}/api/data`);});

打开终端输入node app.js 启动,看到这个表示成功了,点击地址可以看到接口返回的数据

运行结果,打印可以看到已经拿到了接口的数据了,在浏览器网络中也可以看到请求已经成功了

axios是第三方库,在使用前需要安装,命令

 axios在实际开发中用的比较多,这里在演示下axios发put,post,delete请求。首先修改下后端代码,添加上put,post,delete接口。(修改完代码后记得重启下--在执行一次node app.js)

运行效果,从打印结果可以看到调用接口的时候数据发生了变化

到此这篇关于fetch,ajax,axios的区别以及使用的文章就介绍到这了,更多相关fetch,ajax,axios区别及使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


本文地址: https://www.earthnavs.com/jishuwz/c3edb31c7e2bb94e54ec.html
全局中部横幅
2345网址导航

2345.com热门网址导航站网罗精彩实用网址,如音乐、小说、NBA、财经、购物、视频、软件及热门游戏网址大全等,二三四五网址导航提供了多种搜索引擎入口、实用查询、天气预报、个性定制等实用功能,帮助广大网友畅游网络更轻松。

连接高校和企业

蓝桥云课是国内领先的IT在线编程及在线实训学习平台,专业导师提供精选的实践项目,创新的技术使得学习者无需配置繁琐的本地环境,随时在线流畅使用。以就业为导向, 提供编程、运维、测试、云计算、大数据、数据库等全面的IT技术动手实践环境, 提供Linux、Python、Java、C语言、Node.js、Hadoop、PHP、Docker、Git、 R、SQL、MongoDB、Redis、Swift、Spark等千门热门课程。

论坛

该站点未添加描述description...

开发者导航

程序员一站式导航平台,汇集AI工具、前端、后端、Python、Java等1000+优质开发工具

Breaking

ViewthelatestnewsandbreakingnewstodayforU.S.,world,weather,entertainment,politicsandhealthatCNN.com.

知乎封神榜

致力于打造知乎第一门户,知乎新手必备神器,推荐知乎用户和话题,并进行分类和排名,提供准确的搜索功能。

西瓜数据

西瓜数据提供新媒体流量监测及精准营销服务,以数据为依托,为品牌主营销洞察提供支持,提高投放效率,降低投放成本,助力品牌实现营销新目标。

百度新闻

百度新闻是包含海量资讯的新闻服务平台,真实反映每时每刻的新闻热点。您可以搜索新闻事件、热点话题、人物动态、产品资讯等,快速了解它们的最新进展。

彩虹云主机

彩虹云主机提供免备案CDN,免备案空间,全光纤网络,BGP智能多线,直连大陆ChinaNET骨干端口,资源存放在郑州、洛阳、洛杉矶、韩国、香港等多个数据中心,已实现所有主机/云服务器的SSD固态硬盘部署,硬盘读写能力提升5倍,彻底解决高并发问题,可满足高IO需求的数据库等在线业务

小站百科

小站百科专业领先的网站目录平台,专注于免费提交和整理国内各行业排名前列的众多知名网站,我们的目标是打造一个全面、权威、专业的网站目录平台,助力用户快速定位所需信息,提升网络浏览效率。