【axios】axios的基本使用

news2025/7/11 7:27:15

axios是一个专注于网络请求的库。 不同于jquery,功能复杂,既可以操作dom,又可以做动画,还可以发ajax请求。axios是一个专注于网络请求的库。

一、基本使用

1.导入库文件

在js中导入axios的库文件后,会直接在全局挂载一个axios方法,就可以直接使用了。

<!-- 导入axios的库文件 -->
<script src="lib/axios.js"></script>
<script>
    console.log(axios);
</script>

在这里插入图片描述

在控制台打印axios可以看到,它是一个方法,我们现在就可以直接使用了。

2.基本语法

axios({
   //请求方式,'GET'或者'POST'
    method: 'GET',
    //请求地址
    url: ''
}).then(res => {})

axios方法获取的结果是一个Promise对象,测试如下:

const res = axios({
    method: 'GET',
    url: 'http://www.liulongbin.top:3006/api/getbooks'
})
console.log(res);

在这里插入图片描述

既然是一个Promise对象,那么就可以通过 .then的方式拿到获取成功后的结果了。

axios({
    method: 'GET',
    url: 'http://www.liulongbin.top:3006/api/getbooks'
}).then(res => console.log(res))

在这里插入图片描述

可以看到获取成功了。到此为对基本语法的使用解释。

3.结果分析

但是,axios方法拿到的结果就是服务器请求到的结果吗?我们使用postman来测试一下。
在这里插入图片描述
postman显示的是服务器请求后拿到的返回结果。我们可以看到,和axios拿到的结果并不一样,经过比对,我们可以发现,axios拿到的对象结果中有一个data属性,那里面放着的才是服务器请求的真正的返回结果。

到此,我们可以得到axios拿到的对象结果服务器请求的真正的返回结果之间的关系:
在这里插入图片描述
要想直接拿到真实数据的格式,只需要res.data

4.参数传递

基本语法params中写GET方法的传参,data中写POST方法的传参。

axios({
    //请求方式,'GET'或者'POST'
    method: 'GET',
    //请求地址
    url: '',
    //url中的查询参数,GET方法的传参
    params: {},
    //请求体参数,POST方法的传参
    data: {}
}).then(res => {})

get传参演示:

axios({
    method: 'GET',
    url: 'http://www.liulongbin.top:3006/api/getbooks',
    params: {
        id: 1
    },
}).then(res => console.log(res))

在这里插入图片描述
post传参演示:

axios({
    method: 'POST',
    url: 'http://www.liulongbin.top:3006/api/post',
    data: {
        name: 'zs',
        age: 20
    },
}).then(res => console.log(res))

在这里插入图片描述

5.方法简化

(1)通过async和await的方式直接拿到返回值

因为axios方法获取的结果是一个Promise对象,所以我们可以通过async和await的方式直接拿到返回值,不需要再通过调用.then的方式了。

给’#btnGet’按钮绑定一个点击事件,点击后发起axios请求。通过async和await的方式可以直接拿到返回值。

document.querySelector('#btnGet').addEventListener('click', async function () {
    const res = await axios({
        method: 'GET',
        url: 'http://www.liulongbin.top:3006/api/getbooks',
        // params: {
        //     id: 1
        // }
    })
    console.log(res);
})

在这里插入图片描述
(2)解构赋值拿到服务器请求到的真正数据
由第3小节我们知道,axios拿到的对象结果在服务器请求到的真正数据外面套了一层壳子,存在它的data属性中,我们可以通过对象解构的方式直接拿到服务器请求到的真正数据。

document.querySelector('#btnGet').addEventListener('click', async function () {
    const {data} = await axios({
        method: 'GET',
        url: 'http://www.liulongbin.top:3006/api/getbooks',
    })
    console.log(data);
})

在这里插入图片描述
(3)解构赋值重命名
服务器请求到的真正数据有三个属性,data,status,msg,其中data是我们最关心的,存着需要的数据项,我们只希望取到这个data数组,这个比较简单,因为解构赋值已经拿到服务器请求到的真正数据了,并存在data变量中,所以只需要访问这个变量的data属性就能拿到,即data.data,但是这样很容易混淆, 所以我们在解构赋值的时候给data换个名字 { data: res }

document.querySelector('#btnGet').addEventListener('click', async function () {
    const { data: res } = await axios({
        method: 'GET',
        url: 'http://www.liulongbin.top:3006/api/getbooks',
    })
    console.log(res.data);
})

在这里插入图片描述

6.axios直接发起GET请求和POST请求

基本语法:

//axios直接发起GET请求
axios.get('url地址', {
    //GET参数
    params: {}
})
//axios直接发起POST请求
axios.post('url地址', { //POST参数 })

示例:

document.querySelector('#btnGet').addEventListener('click', async function () {
    const { data: res } = await axios.get('http://www.liulongbin.top:3006/api/getbooks', {
        params: {
            id: 1
        }
    })
    console.log(res.data);
})
document.querySelector('#btnPost').addEventListener('click', async function () {
    const { data: res } = await axios.post('http://www.liulongbin.top:3006/api/post', {
        name: 'zs',
        gender: '女'
    })
    console.log(res);
})

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

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

相关文章

[vue 进阶] 关于dicts字典的用法

最近在学习若依系统的框架&#xff0c;其中发现一个很奇怪的事情&#xff0c;网上查询很多地方&#xff0c;也是一知半解。 网上搜索的结果如下&#xff0c;大家可以先看看&#xff1a; [vue 进阶] 关于dicts字典的用法_小钿钿不忘初心_的博客-CSDN博客前言在使用若依框架开发…

CSS3如何调整背景图片大小

系列文章目录 CSS3实现半透明边框&#xff08;1&#xff09; CSS3实现多重边框&#xff08;2&#xff09; CSS3如何改变背景图片大小系列文章目录一、background-size语法格式二、参数详解1.length2.percentage3.cover4.contain总结在CSS3中&#xff0c;如果想要调整背景图片的…

适合普通大学生的前端开发学习路线

大家好&#xff0c;我是帅地。 假如你没有明确的目标&#xff0c;或许可以按照我说的学习路线来学习一波&#xff0c;我写的每一份学习路线&#xff0c;不会很全面&#xff0c;因为我认为&#xff0c;东西列的太多&#xff0c;反而不利于新手的学习&#xff0c;所以我列举的&a…

Vue中的路由

目录 目录 一&#xff0c;路由理解 二&#xff0c;基本配置 第一步: 在main.js文件中引入并使用插件 第二步: 在src文件夹下创建一个router文件夹然后在文件夹下创建index.js ​编辑 第三步: 回到main.js中引入创建的 router 并在vue实例对象中使用 三&#xff0c;路由的…

vue使用富文本编辑器vue-quill-editor

问题描述&#xff1a; 我们在开发过程中经常会遇到使用富文本编辑器进行操作&#xff0c;当前插件市场上关于富文本的编辑器挺多的&#xff0c;我们就不一一个介绍了&#xff0c;现在我们主要讲解一些vue-quill-editor富文本编辑器的使用操作和注意事项。 效果图 具体操作使用…

是什么让学习 Web 开发在未来几年变得有价值?

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f30a; 本文首发…

React中ref的使用方法和使用场景(详解)

摘要 不管在Vue中还是React&#xff0c;如果我们想使用一个元素的DOM&#xff0c;不需要通过JS中操纵DOM的方法&#xff0c;它们提供了一个专属的API就是ref。 而Vue中的ref可能比较简单&#xff0c;这一篇主要讲一下如何在React中使用ref&#xff0c;以及使用ref的场景。 1…

如何创建vue3项目

目录 如何创建vue3项目 1、用vue cli创建 2、使用vite直接创建 3、使用vue3官方推荐创建方式 如何创建vue3项目 创建vue3我们常用的有三种方式&#xff1a; 1、用vue cli创建 1.使用vue cli环境前提条件&#xff1a; node -vv16.13.0 npm -v8.1.0 vue -Vvue/cli 4.5.15 …

微信小程序中使用vant组件库(超详细)

目录前言Vant Weapp的安装与使用1、安装 node.js2、通过 npm 安装3、修改 app.json4、修改 project.config.json5、构建 npm 包6、使用组件全局引入和局部引入全局引入局部引入Toast 组件的使用官方文档 API 详解Props 参数Events 事件Slot 插槽外部样式类前言 Vant是一个轻量…

vue中this.$router.push()路由传值和获取的两种常见方法

今天接到了比较大的需求&#xff0c;由于这个公司的接口调用方法和上一段实习那家公司的写法很不一样&#xff0c;我花了很多时间在摸索&#xff0c;“踏出第一步总是最困难的”&#xff0c;果然没错&#xff0c;第一个很费劲&#xff0c;但完成之后有了思路&#xff0c;下面的…

登录功能的实现(包括前后端)

目录:&#x1f349;&#x1f349;&#x1f349;UPDATE:✨✨✨前言✨✨✨概述✨✨✨技术栈✨✨✨效果图✨✨✨代码✨✨✨github链接&#x1f349;&#x1f349;&#x1f349;UPDATE: 突然发现喜提榜一&#xff0c;蟹蟹读者老爷们的支持(づ&#xffe3; 3&#xffe3;)づ 润色了…

微信小程序完整项目实战(前端+后端)

基于微信小程序的在线商城点单系统 前言&#xff1a;闲来无事&#xff0c;想以后自己开一个小超市或者小吃店&#xff0c;能够支持线上下单&#xff0c;既方便客户也方便自己。系统采用C#语言作为后端实现与小程序的交互&#xff0c;给用来学习或者想自己开个小店的朋友当个参考…

如何在 WordPress 中嵌入 iFrame

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且…

【uniapp小程序开发】—— 组件封装之【自定义轮播图】

文章目录&#x1f34b;前言&#xff1a;&#x1f34d;正文1、首先了解swiper组件1.1、小小的demo示例&#xff1a;1.2、自定义轮播图效果展示说明2、完成自定义轮播图效果3、组件封装——自定义轮播图3.1、创建swiper-doc.vue组件3.2、组件调用&#xff0c;封装完成&#x1f38…

session、cookie、token的区别?

前言 今天就来理一理session、cookie、token这三者之间的关系&#xff01; 1.为什么会有它们&#xff1f; 我们都知道 HTTP 协议是无状态的&#xff0c;所谓的无状态就是客户端每次想要与服务端通信&#xff0c;都必须重新与服务端链接&#xff0c;意味着请求一次客户端和服…

React组件通信-父子组件间的通信

文章目录React父子组件通信认识组件嵌套组件通信父传子参数验证子传父React父子组件通信 认识组件嵌套 组件之间存在嵌套关系&#xff1a; 在之前的案例中&#xff0c;我们只是创建了一个组件App&#xff1b; 如果我们一个应用程序将所有的逻辑都放在一个组件中&#xff0c;那…

适合我的前端学习路线(学习前端不迷路)

适合我的前端学习路线&#xff08;学习前端不迷路&#xff09; 小伙伴们想学习前端&#xff0c;但是却不知如何入手&#xff0c;上网查前端学习路线&#xff0c;第一页往往充斥着各种培训公司的广告&#xff0c;又或者是搜前端学习路线图时&#xff0c;出现大量的路线图导致你还…

【学Vue就跟玩一样】Vue中的路由与多种守卫

1.vue-routervue的一个插件库&#xff0c;专门用来实现对SPA应用的单页Web应用(single page web application, SPA)。整个应用只有一个完整的页面。点击页面中的导航链接不会刷新页面&#xff0c;只会做页面的局部更新。数据需要通过ajax请求获取。2.什么是路由一个路由就是一组…

Tomcat服务器部署+Web项目搭建

Tomcat服务器部署&#xff0b;Web项目搭建 1.Tomcat服务器 1 . Tomcat下载 2 . Tomcat启动与关闭 3 . 配置端口号2.IDEA搭建Web项目 1 . web项目创建 2 . 本地服务器配置 Tomcat下载 tomcat官网&#xff1a;tomcat 1.选择与自己电脑对应的位数下载&#xff0c;我们…

HTML跳动爱心代码|最近很火的爱心代码你还没收到吗

最近很火的跳动爱心代码HTML实现可DIY 看效果 QQ录屏20221108115545点个赞吧,养成好习惯 不想动手的小伙伴可以直接&#x1f447;&#x1f447; 阿里云盘直接提取 阿里云盘 DIY版----提取码: f30q 使用说明 主体代码来源于网络,让我们为原作者点赞&#x1f44d;我用css3的anim…