首页 > 其他分享 >Axios详解及用法

Axios详解及用法

时间:2024-11-04 21:45:14浏览次数:6  
标签:function axios Axios 请求 用法 详解 error response

文章目录

Axios详解:用法、创作流程、优缺点、代码案例及使用场景

Axios简介

Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js环境。它提供了一个简单、方便的API来处理HTTP请求和响应,并具备多种强大的特性,使其成为现代Web开发中不可或缺的工具。

Axios的用法
  1. 安装Axios

    在Node.js项目中,可以通过npm或yarn安装Axios。在浏览器中,可以直接通过script标签引入Axios的CDN链接。

    npm install axios
    

    或者

    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    
  2. 创建Axios实例

    在Node.js中,可以通过new Axios()创建一个新的Axios实例;在浏览器中,可以通过axios.create()创建新的Axios实例。

    const axios = require('axios');
    const instance = axios.create({
        baseURL: 'https://api.example.com',
        timeout: 1000,
        headers: {'X-Custom-Header': 'foobar'}
    });
    
  3. 设置请求参数

    通过Axios实例的request方法设置请求参数,如URL、请求方法、请求头等。

    const config = {
        method: 'get',
        url: '/user/12345',
        params: {
            ID: 12345
        }
    };
    
  4. 发送请求

    通过Axios实例的get、post、put、delete方法发送HTTP请求。

    instance.get('/user?ID=12345')
        .then(function (response) {
            console.log(response.data);
        })
        .catch(function (error) {
            console.error(error);
        });
    
  5. 处理响应

    通过Promise的then、catch方法处理HTTP响应。

    instance.post('/user', {
        firstName: 'Fred',
        lastName: 'Flintstone'
    })
    .then(function (response) {
        console.log(response.data);
    })
    .catch(function (error) {
        console.error(error);
    });
    
Axios的创作流程

Axios的创作流程主要包括以下几个步骤:

  1. 需求分析:确定需要实现的HTTP请求类型和特性,如GET、POST、PUT、DELETE等。
  2. 实例创建:根据需求创建一个或多个Axios实例,并配置公共参数。
  3. 请求配置:设置请求的参数、头部信息等。
  4. 发送请求:通过实例的方法发送HTTP请求。
  5. 处理响应:使用Promise的then、catch方法处理响应数据或错误。
Axios的优缺点

优点

  1. 基于Promise:Axios的所有函数都返回一个Promise对象,支持async/await语法,使得异步操作更加简洁明了。
  2. 请求和响应拦截:可以在请求被发送之前或响应被处理之前进行修改,非常适用于添加公共头部信息、处理错误响应等场景。
  3. 自动转换JSON数据:Axios在默认情况下会将请求的数据转化为JSON格式,同时也会自动将响应的数据从JSON转化为JavaScript对象。
  4. 支持取消请求:提供了取消正在进行的请求的功能。
  5. 客户端支持防止CSRF/XSRF:Axios在某些情况下可以自动设置XSRF-TOKEN HTTP header,增加应用安全性。

缺点

  1. 体积相对较大:与一些轻量级的HTTP库相比,Axios的体积稍大,但考虑到其丰富的功能和良好的兼容性,这一点是可以接受的。
  2. 学习成本:对于初学者来说,可能需要一定的时间来熟悉Axios的API和特性。
代码案例及详细解释

案例1:发送GET请求

axios.get('/user?ID=12345')
    .then(function (response) {
        console.log(response.data);
    })
    .catch(function (error) {
        console.error(error);
    });

解释

  • axios.get:发送GET请求。
  • '/user?ID=12345':请求的URL和参数。
  • .then(function (response) {...}):处理成功响应。
  • .catch(function (error) {...}):处理错误响应。

案例2:发送POST请求

axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
})
.then(function (response) {
    console.log(response.data);
})
.catch(function (error) {
    console.error(error);
});

解释

  • axios.post:发送POST请求。
  • '/user':请求的URL。
  • {firstName: 'Fred', lastName: 'Flintstone'}:请求的数据。
  • .then(function (response) {...}):处理成功响应。
  • .catch(function (error) {...}):处理错误响应。

案例3:使用拦截器

axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么,例如添加公共头部信息
    config.headers['Authorization'] = 'Bearer token';
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么,例如进行数据加密、解密等
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

解释

  • axios.interceptors.request.use:添加请求拦截器。
  • axios.interceptors.response.use:添加响应拦截器。
  • 在请求拦截器中,可以修改请求的配置,如添加头部信息。
  • 在响应拦截器中,可以修改响应的数据或处理错误。
Axios的使用场景
  1. 前端与后端通信:Axios是前端与后端通信的常用工具,可以方便地发送各种HTTP请求并处理响应。
  2. RESTful API调用:在调用RESTful API时,Axios提供了简洁明了的API,使得请求和响应的处理更加简单。
  3. 跨域请求:在需要跨域请求时,Axios可以配合CORS(跨源资源共享)机制实现跨域通信。
  4. 数据上传与下载:在文件上传和下载时,Axios可以方便地处理文件数据,并支持进度监控等功能。
  5. 错误处理与重试机制:Axios提供了强大的错误处理机制,并可以配合重试机制实现更加健壮的请求处理。

标签:function,axios,Axios,请求,用法,详解,error,response
From: https://blog.csdn.net/qq_63447955/article/details/143424567

相关文章

  • Java多线程编程(三)一>详解synchronized, 死锁,wait和notify
    目录: 一.synchronized的使用:   二. 常见死锁情况: 三.如何避免死锁:  四.wait和notify一.synchronized的使用: 我们知道synchronized锁具有互斥的特点:synchronized会起到互斥效果,某个线程执行到某个对象的synchronized中时,其他线程如果也执......
  • MT1421-MT1430 码题集 (c 语言详解)
    目录        MT1421·异或        MT1422·总位数        MT1423·被3整除        MT1424·卡特兰序列        MT1425·小码哥的序列        MT1426·普洛尼克数        MT1427·素数序列        MT1......
  • TSMI252012PMX-1R5MT电感器详解
    一、引言TSMI252012PMX-1R5MT是一款由深圳市时源芯微科技有限公司(TimeSource)生产的T-core一体化结构电感器,具有独特的结构特点和优异的电气性能。其广泛的应用场景、符合国际环保标准以及精确的电气参数,使其成为众多电子设备中不可或缺的重要元件。本文将对该电感器进行全面......
  • spring-framework的StopWatch类详解,每个方法带有具体的例子
    目录简介:StopWatch类的应用场景:StopWatch类提供了以下一些主要方法:start():stop():reset():split():unsplit():getTime():getStartTime():toString():isStarted():isStopped():示例代码:以下是一个使用StopWatch测量代码执行时间的简单示例:以下是一个使用StopWatch类的复杂示例,该示例演......
  • Python学习笔记-yield用法及优点
    Python学习笔记-yield用法及优点概述yield用于定义生成器,它最终返回一个生成器对象,这个生成器对象可以被迭代。例子#encoding:utf8importsysn=200m=1000#定义一个生成器,yield必须在函数中使用defGenerators(n):foriinrange(n):ifi%2==0:......
  • django抛出异常然后在axios里处理
     1.views.py代码@csrf_exemptdefget_selectdata_by_sql(request):current=request.GET.get("current",1)size=request.GET.get("size",0)limit_size=50try:res_list=[]request_dict=json.loads(req......
  • Excle表格:vlookup函数详解,通俗易懂篇
    文章目录1、基本用法2、精确查找3、近似匹配其他参考文档1、基本用法vlookup函数2、精确查找在下面这张图中在选定范围中的第一列中找出小明1得到该行,再通过选择该行的第2列,得到57,所以最终的结果为57参数二中:只有第一列会作为选择条件,其他列都是用于取值如果第一......
  • ThingsBoard规则链节点:Message Count 节点详解
    引言1.MessageCount节点简介2.节点配置2.1基本配置示例3.使用场景3.1监控设备活跃度3.2检测异常情况3.3生成统计报告4.实际项目中的应用4.1项目背景4.2项目需求4.3实现步骤5.总结 ......
  • Oracle 12c安装图文详解!内附安装包!
    首发微信公众号:SQL数据库运维原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247486652&idx=1&sn=b2e1663c3287e072192c8faa5287f6ea&chksm=ea3758ccdd40d1dafbcdc4136588f02214df324feb3228f885662c7d55a17345ec47b7626640&token=360104983&lan......