Axios的简明教程

news/2024/12/22 19:01:05/

Axios是什么?

Axios是一个基于promise的HTTP客户端,可以在浏览器和node.js中使用。它提供了一种简单的方法来发送异步HTTP请求。与其他HTTP库(如Fetch)相比,Axios提供了更丰富的功能和更好的错误处理。例如,Axios支持取消请求,自动转换JSON数据,客户端支持防止CSRF,等等。

安装Axios

你可以使用npm或yarn来安装Axios:

npm install axios

或者

yarn add axios

创建Axios实例

创建Axios实例可以让你自定义配置,比如设置基础URL:

javascript">const instance = axios.create({baseURL: 'https://api.example.com'
});

这样,你就可以在所有的请求中复用这个配置了。

发送GET和POST请求

使用Axios发送GET和POST请求非常简单:

javascript">// GET请求
axios.get('/user?ID=12345').then(function (response) {// 处理响应数据}).catch(function (error) {// 处理错误});// POST请求
axios.post('/user', {firstName: 'Fred',lastName: 'Flintstone'}).then(function (response) {// 处理响应数据}).catch(function (error) {// 处理错误});

在这里,我们首先发送一个GET请求,然后在promise的then方法中处理响应。如果请求失败,我们可以在catch方法中处理错误。

Axios的配置选项

当您使用 Axios 发起请求时,以下是创建请求时可用的一些配置选项:

  1. url:用于请求的服务器 URL。这是必需的,其他配置项都是可选的。例如:

    javascript">axios({url: '/user',method: 'get',// 其他配置项...
    });
    
  2. method:请求使用的 HTTP 方法。如果未指定,默认为 GET 方法。

  3. baseURL:将自动添加到 url 前面的基本 URL。这对于为 Axios 实例的所有请求提供相对 URL 很有用。例如:

    javascript">axios.defaults.baseURL = 'https://api.example.com';
    
  4. transformRequesttransformResponse:允许在发送请求前和处理响应前对数据进行转换。例如,您可以修改请求数据或响应数据的格式。

  5. headers:自定义请求头。例如,您可以设置 X-Requested-With 头:

    javascript">axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
    
  6. params:与请求一起发送的 URL 参数。必须是一个简单对象或 URLSearchParams 对象。

  7. data:作为请求体发送的数据。仅适用于 PUT、POST、DELETE 和 PATCH 请求方法。

  8. timeout:指定请求超时的毫秒数。如果请求时间超过指定的超时值,请求将被中断。

  9. withCredentials:表示跨域请求时是否需要使用凭证。

  10. responseType:表示浏览器将要响应的数据类型,例如 JSON、文本等。

  11. maxRedirects:定义在 Node.js 中要遵循的最大重定向数。

  12. validateStatus:定义对于给定的 HTTP 状态码是 resolve 还是 reject promise。

Axios的拦截器

Axios允许你使用拦截器来修改请求或响应:

javascript">// 添加请求拦截器
axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器
axios.interceptors.response.use(function (response) {// 对响应数据做点什么return response;}, function (error) {// 对响应错误做点什么return Promise.reject(error);});

拦截器是一种强大的工具,可以让你在请求发送或响应到达之前执行代码。例如,你可以在请求拦截器中添加认证头,或者在响应拦截器中全局处理错误。


http://www.ppmy.cn/news/1426951.html

相关文章

linux实用C++库之日志

目录 1 介绍2 内容 1 介绍 本博客用来记录linux下日志库的基本使用。 2 内容 安装: 使用: CMakeLists.txt编写:

Spring项目日期数据的类型转换

前言 需要用到工具类SimpleDateFormat 1. 哪个依赖类提供: SimpleDateFormat 是 Java 标准库中的一个类,属于 java.text 包。它不依赖于外部库,是 Java 核心 API 的一部分。 2. 原理解释: SimpleDateFormat 是 java.text.Dat…

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单…

密码学 | 椭圆曲线密码学 ECC 入门(四)

目录 正文 1 曲线方程 2 点的运算 3 求解过程 4 补充:有限域 ⚠️ 知乎:【密码专栏】动手计算双线性对(中) - 知乎 ⚠️ 写在前面:本文属搬运博客,自己留着学习。注意,这篇博客与前三…

MetaGPT:一个多智能体框架,将不同的GPT模型分配到不同的角色中,形成一个协作的软件实体

MetaGPT是一个多智能体框架,旨在通过将不同的GPT模型分配到不同的角色中,形成一个协作的软件实体,以解决复杂任务3。它由中国团队开发,主要应用于软件开发等场景,利用标准作业程序(SOP)来协调基于大语言模型的多智能体系统,实现元编程技术5。MetaGPT的架构分为两层:基…

解决navicat远程连接mysql 很慢(首次)

通过navicat链接的测试服务器的mysql数据库连接打开的很慢(间隔一段时间没使用的情况,navicat 链接会自动断开,再次链接就很慢,之后就正常,平时没在意,今天有空就给他解决下),但是连接本地的mys…

Python练习Day2

水仙花数 说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 5^3 3^3153。 # 水仙花数 sum 0 num int(input("请输…

【Cookie,Session,Token,JWT的区别】

一、Cookie Cookie 是在 HTTP 协议下,维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器上的小文本数据文件,它可以包含有关用户的信息。cookie是不可跨域的,每个cookie都会绑定一个单一的域名,并只能在指…