Axios、Fetch、原生Ajax、微信小程序的wx.request是什么?使用方法是?(简洁且带有代码示例)

Axios、Fetch和原生AJAX、微信小程序的wx.request都是用于在前端发送网络请求的工具。它们可以用来与服务器通信并接收响应数据。

一、Axios

Axios是一个基于Promise的HTTP客户端,可用于浏览器和Node.js,用于全局安装或在模块系统中使用。可以通过Axios提供的API发送多种类型的请求,包括GET、POST、PUT、DELETE等。Axios可以拦截请求和响应,并设置全局默认配置,具有更灵活的配置选项。支持取消请求、拦截器等高级功能。

// 引入 axios 库
import axios from 'axios';// 发送 GET 请求
axios.get('https://api.example.com/items').then(function (response) {// 处理成功回调console.log(response.data);}).catch(function (error) {// 处理错误回调console.error(error);});// 发送 POST 请求
axios.post('https://api.example.com/login', {username: 'Alice',password: 'secret'
})
.then(function (response) {console.log(response);
});

 展示了如何使用 Axios发起 GET 和 POST 请求的基本用法。

二、Fetch

Fetch是原生JavaScript提供的API,用于发送网络请求。它是现代浏览器内置的函数,无需额外安装,是基于 Promise 的现代式 XMLHttpRequest 对象 ,为发送和接收数据提供了更好的方法。Fetch 不是基于全局配置,需要在每个请求中设置各自的配置。Fetch API 使用 fetch() 函数,因此只需要传入 URL 和设置方法即可发出请求。Fetch API 支持的内容包括传入头部选项,带有默认超时等。

// 发送 GET 请求
fetch('https://api.example.com/items').then(response => response.json()) // 解析为 JSON 格式.then(data => {console.log(data);}).catch(error => {console.error('Error:', error);});// 发送 POST 请求(包含 JSON 数据)
fetch('https://api.example.com/login', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({username: 'Alice',password: 'secret'})
})
.then(response => response.json())
.then(data => {console.log(data);
})
.catch(error => {console.error('Error:', error);
});

 展示了如何使用 Fetch API 发起 GET 和 POST 请求的基本用法。

三、原生Ajax

原生AJAX是指使用原生的XMLHttpRequest对象发送网络请求。原生的 XMLHttpRequest 对象在发送网络请求方面功能强大,但需要更多的代码来处理。需要手动处理状态码和响应数据的解析。由于代码比较冗长和复杂,一般推荐使用 Axios 或 Fetch 作为更现代化的替代方案。

// 创建一个新的 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();// 初始化一个 GET 请求
xhr.open('GET', 'https://api.example.com/items', true);// 设置请求完成后的回调
xhr.onload = function () {if (this.status === 200) {var data = JSON.parse(this.responseText);console.log(data);} else {console.error('请求失败,状态码:' + this.status);}
};// 设置请求出错时的回调
xhr.onerror = function () {console.error('请求出现网络错误');
};// 发送请求
xhr.send();// 使用 XMLHttpRequest 发送 POST 请求
xhr.open('POST', 'https://api.example.com/login', true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {var data = JSON.parse(xhr.responseText);console.log(data);}
};
xhr.send(JSON.stringify({username: 'Alice', password: 'secret'}));

展示了如何使用原生 XMLHttpRequest 发起 GET 和 POST 请求的基本用法。

四、微信小程序(wx.request)

微信小程序使用的是 wx.request 来发送网络请求。它是微信小程序提供的API,类似于原生AJAX,但使用方式和配置略有不同。可以通过 wx.request 发送 GET、POST、PUT、DELETE等类型的请求,并处理响应数据。由于安全性和隐私保护原因,微信小程序中的网络请求有一定的限制,比如只能访问配置过的HTTPS域名,并且需要在微信小程序管理后台添加相应的服务器域名白名单。

wx.request({url: 'https://your-api-url.com/data', // 必填,接口地址method: 'GET', // 可选,请求方法,默认为 'GET',有效值:'OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT'data: { key: 'value' }, // 可选,发送给服务器的数据,GET请求时应放在URL query string中header: { 'content-type': 'application/json' }, // 可选,设置请求的 headersuccess: function (res) {console.log(res.data) // 返回的数据},fail: function (err) {// 请求失败处理},complete: function () {// 请求完成后的处理,无论成功还是失败都会执行}
})

通过 wx.request,需要传入一个包含请求参数的对象,并配置相应的url、method、success和fail等参数来处理请求和响应,开发者可以实现与后端服务器之间的数据交互,从而实现在小程序中加载动态内容、提交表单数据、获取用户信息等多种功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

滑动验证码登陆测试编程示例

一、背景及原理 处理登录时的滑动验证码有两个难点,第一个是找到滑块需要移动的距离,第二个是模拟人手工拖动的轨迹。模拟轨迹在要求不是很严的情况下可以用先加速再减速拖动的方法,即路程的前半段加速度为正值,后半段为负值去模…

Apache 开源项目文档中心 (英文 + 中文)

进度:持续更新中。。。 Apache Ambari 2.7.5 Apache Ambari Installation 2.7.5.0 (latest)Apache Ambari 安装 2.7.5.0 (latest)Apache Ambari Administering 2.7.5.0 (latest)

Java学习之super VS this

在Java中,super和this关键字用于引用当前对象或父类对象的成员变量或方法。 一、super关键字: super关键字用于在子类中访问父类的成员变量或方法。使用super关键字调用父类构造方法。使用super关键字可以避免父类和子类中相同名称的变量或方法冲突。 …

Go未用代码消除与可执行文件瘦身

在日常编写Go代码时,我们会编写很多包,也会在编写的包中引入了各种依赖包。在大型Go工程中,这些直接依赖和间接依赖的包数目可能会有几十个甚至上百个。依赖包有大有小,但通常我们不会使用到依赖包中的所有导出函数或类型方法。 这…

如何高速下载,百度 阿里 天翼 等网盘内的内容

如何高速下载,百度 阿里 天翼 等网盘内的内容🏅 前言教程下期更新预报🏅 前言 近段时间经常给大家分享各种视频教程,由于分享的资料是用迅雷网盘存的,但是绝大部分用户都是使用的某度,阿某的这些网盘&…

VScode添加c/c++头文件路径

1.设置工作区include path方法: 命令面板 -> 输入c/c 修改配置文件,添加路径: 2.全局路径: 设置 - > 搜索include path

tomcat+maven+java+mysql图书管理系统1-配置项目环境

目录 一、软件版本 二、具体步骤 一、软件版本 idea2022.2.1 maven是idea自带不用另外下载 tomcat8.5.99 Javajdk17 二、具体步骤 1.新建项目 稍等一会,创建成功如下图所示,主要看左方目录相同不。 给maven配置国外镜像 在左上…

WSL (Windows Subsystem for Linux) 中将默认用户更改为 root

要在 WSL (Windows Subsystem for Linux) 中将默认用户更改为 root,你可以使用以下步骤: 打开你的命令提示符或 PowerShell。首先,你需要知道你的 Linux 发行版的名称。你可以通过运行以下命令来列出所有安装的 WSL 发行版及其状态&#xff…

【DPU系列之】Bluefield 2 DPU卡的功能图,ConnectX网卡、ARM OS、Host OS的关系?(通过PCIe Switch连接)

核心要点: CX系列网卡与ARM中间有一个PCIe Swtich的硬件单元链接。 简要记录。 可以看到图中两个灰色框,上端是Host主机,下端是BlueField DPU卡。图中是BF2的图,是BF2用的是DDR4。DPU上的Connect系列网卡以及ARM系统之间有一个…

cmd命令跳转至指定目录

1、指定目录与当前目录在同一盘符:直接cd 指定目录。2、指定目录与当前目录不在同一盘符: a、方法一:cd 指定目录,此时不会跳转,接着再输入指定目录的盘符即可。 b、方法二:输入指定目录所在的盘符&#xf…

C++:map和set类

关联式容器 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、 forward_list(C11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面 存储的是元素本身。那什么是关…

树莓派上开发音视频应用常用的第三方库

在树莓派上做音视频开发,可以借助一些第三方库,下面按照音频和视频,介绍一些常用的库。 这些库都是音频和多媒体处理相关的,用于开发音频和视频应用程序,例如游戏、媒体播放器、语音合成等。 音频开发库:…

Postgresql复制序列(sequence)

数据迁移时,有关序列(sequence)的复制,例如要将序列从数据库 A 复制到数据库 B,你可以执行以下步骤: 在数据库 A 中找到表tab序列的定义。使用找到的定义在数据库 B 中重新创建序列。 在 PostgreSQL 中&a…

Docker的私有仓库部署-Harbor

目录 一. Docker原生私有仓库 Registry 1. Registry 的介绍 2. Registry 的部署过程 二. Registry 的升级——Habor 1. Harbor 简介 2. Harbor 特性 3. Harbor 的构成 4. Harbor 部署 4.1 部署 Docker-Compose 服务 4.2 部署 Harbor 服务 4.2.1 下载或上传 Harbor…

结构体介绍(2)

结构体介绍(2) 前言一、结构体的内存对齐之深入理解为什么存在内存对齐?修改默认对齐数 二、结构体传参2.1:该怎么传参呢? 三、结构体实现位段3.1什么是位段位段的内存分配位段的跨平台问题 总结 前言 根据之前讲了结…

高精度运算

高精度运算 高精度运算是指在计算机编程中,对超出常规数据类型(如整型、浮点型)所能表示范围的极大或极精确数值进行的各种数学运算。在标准的计算机编程语言中,内置的整数和浮点数类型有其固定的字节数和精度限制,一…

【C++程序员的自我修炼】string 库中常见用法(二)

制芰荷以为衣兮 集芙蓉以为裳 不吾知其亦已兮 苟余情其信芳 目录 字符串的头部插入insert <1>头部插入一个字符串&#xff1a; <2>头部插入一个字符&#xff1a; <3>迭代器的插入 总结&#xff1a; 字符串的头部删除 erase <1>头部插入删除一个字符&a…

nodejs实战——搭建websocket服务器

本博客主要介绍websocket服务器库安装&#xff0c;并举了一个简单服务器例子。 服务器端使用websocket需要安装nodejs websocket。 cd 工程目录 # 此刻我们需要执行命令&#xff1a; sudo npm init上述命令创建package.json文件&#xff0c;系统会提示相关配置。 我们也可以使…

数据结构十:哈希表

本次将从概念上理解什么是哈希表&#xff0c;理论知识较多&#xff0c;满满干货&#xff0c;这也是面试笔试的一个重点区域。 目录 一、什么是哈希表 1.0 为什么会有哈希表&#xff1f; 1.1 哈希表的基本概念 1.2 基本思想 1.3 举例理解 1.4 存在的问题 1.5 总结 二、…

基于JSP的人才公寓管理系统

目录 背景 技术简介 系统简介 界面预览 背景 随着互联网的广泛推广和应用&#xff0c;人才公寓管理系统在网络技术的推动下迅速进步。该系统的设计初衷是满足住户的实际需求&#xff0c;通过深入了解住户的期望&#xff0c;开发出高度定制化的人才公寓管理系统。利用互联网…