axios的安装和使用

在这里插入图片描述

文章目录

    • 一、axios介绍
    • 二、安装axios
    • 三、 案例
    • 四、框架整合
    • 五、插件

一、axios介绍

什么是 axios?
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。
特性:
1、从浏览器中创建 XMLHttpRequests
2、从 node.js 创建 http 请求
3、支持 Promise API
4、拦截请求和响应
5、转换请求数据和响应数据
6、取消请求
7、自动转换 JSON 数据
8、客户端支持防御 XSRF

浏览器支持:
在这里插入图片描述

二、安装axios

  1. 方法一:速度慢
npm install axios -g
  1. 方法二:速度快
cnpm install axios -g

参数说明:
-g:表示全局安装,将会安装在你配置的:C:\Users\XinLiu\nodejs\node_global目录下。如果不指定则为当前文件夹所在目录(局部);

安装成功后如下所示:

在这里插入图片描述
3. 无需安装,直接使用cdn

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

三、 案例

  1. 执行 GET 请求
// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345').then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});// 上面的请求也可以这样做
axios.get('/user', {params: {ID: 12345}}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});
  1. 执行 POST 请求
axios.post('/user', {firstName: 'Fred',lastName: 'Flintstone'}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);});
  1. 执行多个并发请求
function getUserAccount() {return axios.get('/user/12345');
}function getUserPermissions() {return axios.get('/user/12345/permissions');
}axios.all([getUserAccount(), getUserPermissions()]).then(axios.spread(function (acct, perms) {// 两个请求现在都执行完成}));

四、框架整合

1、整合vue-axios

基于vuejs 的轻度封装

1.1 安装vue-axios

cnpm install --save axios vue-axios -g //-g:全局安装

1.2 将下面代码加入入口文件:

import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'Vue.use(VueAxios, axios)

按照这个顺序分别引入这三个文件: vue, axios and vue-axios

1.3 你可以按照以下方式使用:

Vue.axios.get(api).then((response) => {console.log(response.data)
})this.axios.get(api).then((response) => {console.log(response.data)
})this.$http.get(api).then((response) => {console.log(response.data)
})

五、插件

  1. axios-retry

Axios 插件 重试失败的请求

1.1 安装

cnpm install axios-retry -g //-g:全局安装

1.2 使用

// CommonJS
// const axiosRetry = require('axios-retry');// ES6
import axiosRetry from 'axios-retry';axiosRetry(axios, { retries: 3 });axios.get('http://example.com/test') // The first request fails and the second returns 'ok'.then(result => {result.data; // 'ok'});// Exponential back-off retry delay between requests
axiosRetry(axios, { retryDelay: axiosRetry.exponentialDelay});// Custom retry delay
axiosRetry(axios, { retryDelay: (retryCount) => {return retryCount * 1000;
}});// 自定义 axios 实例
const client = axios.create({ baseURL: 'http://example.com' });
axiosRetry(client, { retries: 3 });client.get('/test') // 第一次请求失败,第二次成功.then(result => {result.data; // 'ok'});// 允许 request-specific 配置
client.get('/test', {'axios-retry': {retries: 0}}).catch(error => { // The first request failserror !== undefined});

注意:除非 shouldResetTimeout被设置, 这个插件将请求超时解释为全局值, 不是针对每一个请求,二是全局的设置。

1.3 测试
克隆这个仓库 然后 执行:

cnpm test
  1. vue-axios-plugin

Vuejs 项目的 axios 插件

2.1 安装

可以通过script标签引入,无需安装:

<!-- 在 vue.js 之后引入 -->
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-axios-plugin"></script>
cnpm install --save vue-axios-plugin -g //-g:全局安装

然后在入口文件配置如下:

import Vue from 'Vue'
import VueAxiosPlugin from 'vue-axios-plugin'Vue.use(VueAxiosPlugin, {// 请求拦截处理reqHandleFunc: config => config,reqErrorFunc: error => Promise.reject(error),// 响应拦截处理resHandleFunc: response => response,resErrorFunc: error => Promise.reject(error)
})

2.2 示例
在 Vue 组件上添加了 $http 属性, 它默认提供 get 和 post 方法,使用如下:

this.$http.get(url, data, options).then((response) => {console.log(response)
})
this.$http.post(url, data, options).then((response) => {console.log(response)
})

你也可以通过 this.$axios 来使用 axios 所有的 api 方法,如下:

this.$axios.get(url, data, options).then((response) => {console.log(response)
})this.$axios.post(url, data, options).then((response) => {console.log(response)
})

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

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

相关文章

达摩院最新AI技术助力天猫双11,提供接近真人的语音交互体验

11月8日&#xff0c;记者了解到&#xff0c;阿里巴巴达摩院机器智能实验室最新研究成果——KAN-TTS将首次大规模应用于今年天猫双11&#xff0c;基于该技术&#xff0c;菜鸟热线机器人、语音机器人小蜜以及天猫精灵将为全球消费者提供接近真人的语音交互体验。 让机器开口说话…

make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error

执行完make以后报错 make[1]: *** [objs/Makefile:445: objs/src/core/ngx_murmurhash.o] Error 1 make[1]: Leaving directory /app/nginx-1.9.9 make: *** [Makefile:8: build] Error 2解决办法 找到对应的Maakefile文件&#xff08;我的在 /nginx/objs/Makefile&#xff09…

原来记录系统日志那么简单【Java】【SpringBoot】【Mybatis Plus】【AspcetJ】

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 文章目录前言一、系统日志是什么二、开发技术三、开发步骤3.1引入依赖坐标3.1.1 导入Lombok3.1.2 数据库连接依赖3.1.3 spring aop依赖3.1.4 aspectJ依赖3.1.5 Druid连接池&#xff08;阿里巴巴&#xff09;3.1.6 myb…

程序员风光背后:从零到今日头条数据分析师,我走了1年!

笔者最近在今日头条上&#xff0c;看到了头条员工的自述&#xff1a;“从什么都不懂的小白&#xff0c;到入职头条成为数据分析工程师&#xff0c;我走了1年的时间。”评论区却炸锅了&#xff01;大家不明白&#xff0c;1年时间为什么要学这个&#xff1f;半年时间学Java不香吗…

前端内存优化的探索与实践

引言 标注是地图最基本的元素之一&#xff0c;标明了地图每个位置或线路的名称。在地图 JSAPI 中&#xff0c;标注的展示效果及性能也是需要重点解决的问题。 新版地图标注的设计中&#xff0c;引入了 SDF &#xff08; signed distance field&#xff09;重构了整个标注部分…

直播:AI时代,普通程序员该如何转人工智能(限免报名)

常常有小伙伴在后台反馈&#xff1a;想了解人工智能&#xff0c;但是该怎么学&#xff1f;自学难度大又没有效果&#xff0c;该怎么办&#xff1f;CSDN为了解决这个难题&#xff0c;联合唐宇迪老师为大家带来了一场精彩的直播【年薪百万AI工程师亲授&#xff1a;小白实战培养计…

核心系统100%上云!全球最大流量洪峰,阿里云扛住了

2019天猫双11 96秒成交额破100亿 全球最大流量洪峰 每秒订单峰值54.4万笔 阿里巴巴核心系统 100%上云 我们扛住了&#xff01; 1心1役 把不可能变成可能 今晚为阿里工程师疯狂打call&#xff01; 原文链接 本文为云栖社区原创内容&#xff0c;未经允许不得转载。

如何通过可视化的方式实现Linux和Windows互相传送文件[命令]

文章目录&#x1f3b5;安装&#x1f3b5;使用&#x1f496;1.上传文件&#x1f496;2. 下载文件&#x1f3b5;总结&#x1f3b5;安装 【Centos】 yum install -y lrzsz&#x1f3b5;使用 &#x1f496;1.上传文件 rz -y&#x1f496;2. 下载文件 sz filename&#x1f3b5;…

万字长文丨1分36秒,100亿,支付宝技术双11答卷:没有不可能

2019年双11来了。1分36秒100亿&#xff0c;5分25秒超过300亿&#xff0c;12分49秒超500亿……如果没有双11&#xff0c;中国的互联网技术要发展到今天的水平&#xff0c;或许要再多花20年。 从双11诞生至今的11年里&#xff0c;有一个场景始终在支付宝技术团队之中循环往复——…

大数据 Spark :利用电影观看记录数据,进行电影推荐 | 原力计划

作者 | lomtom责编 | 王晓曼出品 | CSDN博客准备1、任务描述在推荐领域有一个著名的开放测试集&#xff0c;下载链接是&#xff1a;http://grouplens.org/datasets/movielens/&#xff0c;该测试集包含三个文件&#xff0c;分别是ratings.dat、sers.dat、movies.dat&#xff0c…

大家都关注的Serverless,阿里怎么做的?

作者|陈仲寅&#xff08;张挺&#xff09; 出品|阿里巴巴新零售淘系技术部 本文是阿里巴巴前端技术专家-张挺&#xff0c;在 JSConf China 「中国开发者大会」上分享的《面向传统&#xff0c;Serverless 进化之路》&#xff0c;主要讲述阿里集团内部逐步迁移到 Serverless 体系…

我的第一个Go程序

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 文章目录介绍技术网站入门程序介绍 &#x1f4a1;官网介绍 Go 是一门开放源代码的编程语言&#xff0c;可轻松构建简单&#xff0c;可靠且高效的软件。 &#x1f4a1;百度百科 Go&#xff08;又称 Golang&#xff09;…

2684亿!阿里CTO张建锋:不是任何一朵云都撑得住双11

“不是任何一朵云都能撑住这个流量。中国有两朵云&#xff0c;一朵是阿里云&#xff0c;一朵叫其他云。”11月11日晚&#xff0c;阿里巴巴集团CTO张建锋表示&#xff0c;“阿里云不一样&#xff0c;10年前我们从第一行代码写起&#xff0c;构建了中国唯一自研的云操作系统飞天。…

阿里CTO张建锋:明年双11将大规模应用含光AI芯片

11月11日晚&#xff0c;阿里巴巴集团CTO张建锋宣布重磅消息&#xff0c;明年双11将大规模应用平头哥自研的含光AI芯片。 达摩院研发的AI技术已应用于天猫双11的各个场景。未来&#xff0c;这些人工智能应用将会越来越多跑在阿里自研的芯片上。 2019年9月25日杭州云栖大会上&am…

shell脚本报错“^M: bad interpreter”解决方法

文章目录1. 现象2. 先编辑脚本3. 脚本观察4. 脚本格式调整5. 脚本格式查看6. 保存脚本7. 重新运行脚本1. 现象 bash: ./ry.sh: /bin/sh^M: bad interpreter: No such file or directory2. 先编辑脚本 # 首先编辑脚本 [rootnode2 ruoyi]# vim ry.sh# 3. 脚本观察 这时会看到文…

深入解析final关键字的用法

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 个人博客地址&#xff1a;http://blog.breez.work 文章目录介绍解析final属性final方法final参数final类介绍 final用于声明属性【属性不可变】、方法【方法不可覆盖】、类&#xff08;除了抽象类&#xff09;【类不…

出道50年+!乘风破浪的编程语言们,能二次翻红吗?

来源 | 编程技术宇宙责编| Carol继上次哈希表华山论剑之后&#xff0c;比特宇宙编程语言联合委员会又来搞事情了。委员会要做一套全新的系统&#xff0c;涉及后端、前端、客户端三大块&#xff0c;为选择什么样的语言组合拿不定主意。为了体现公平&#xff0c;委员会特举办一次…

Spotify如何使用Cassandra实现个性化推荐

在Spotify我们有超过6000万的活跃用户&#xff0c;他们可以访问超过3000万首歌曲的庞大曲库。用户可以关注成千上万的艺术家和上百个好友&#xff0c;并创建自己的音乐图表。在我们的广告平台上&#xff0c;用户还可以通过体验各种音乐宣传活动&#xff08;专辑发行&#xff0c…

RuoYi-Vue 部署 Linux环境 若依前后端分离项目(jar包+nginx 多机版本)

接上一篇&#xff1a;RuoYi-Vue 部署 Linux环境 若依前后端分离项目&#xff08;jar包nginx 单机版本&#xff09; 前端和后端不在一个服务器上&#xff0c;如何部署呢&#xff1f; 文章目录1. 服务器和软件部署2. 后端部署3. 前端部署4. 登录5. 效果图1. 服务器和软件部署 服…

三个不同线程顺序打印ABC十种写法【并发编程JUC】

夫陶公清风千古&#xff0c;余又何人&#xff0c;敢称庶几 个人博客地址&#xff1a;http://www.breez.work &#x1f4d6;写法一&#xff1a;使用信号量Semaphore public class Foo {private Semaphore semaphoreB new Semaphore(0);private Semaphore semaphoreC new Sem…