axios的安装和使用

axios的安装和使用文章目录一、axios介绍二、安装axios三、案例一、axios介绍什么是axios?Axios是一个基于promise的HTTP库,可以用在浏览器和node.js中。特性:1、从浏览器中创建XMLHttpRequests2、从node.js创建http请求3、支持PromiseAPI4、拦截请求和响应5、转换请求数据和响应数据6、取消请求7、自动转换JSON数据8、客户端支持防御XSRF浏览器支持:二、安装axios方法一:速.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

一、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

Jetbrains全家桶1年46,售后保障稳定

  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 fails
    error !== 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)
})
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201105.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CPU型号后缀字母所代表的含义

    CPU型号后缀字母所代表的含义一、Intel桌面式CPU——只看数字你就输了●X后缀X后缀=至高无上的至尊版  X代表Extreme,中文意思是至尊级,代表同一时代性能最强的CPU。如Corei7-5960X、Corei7-4960X。X代表在同一代中只有一款CPU黄袍加身,地位至高无上。加上没有竞争对手可以望其项背,…

    2022年5月30日
    40
  • 你的产品在强制用户按照你的意愿去操作吗「建议收藏」

    你的产品在强制用户按照你的意愿去操作吗「建议收藏」最近小编买了一台某品牌的洗衣机,在国内挺有名的品牌,因为相信这个品牌才买的。买完之后,小编自己在家洗衣服,发现老是滴滴响,然后终止运行了,本来简单的几件衣服,洗了一下午没洗完,自己甚是苦恼。自己看了一下机器上的告警编码,又看了一下说明书,发现是由于洗衣机为了防止漏水而发生告警。主要原理是这样的:洗衣机启动运行,开始进水,如果进水超过40分钟,还没有达到设定的水位,洗衣机就停止运转了,并发出滴滴的告…

    2022年6月24日
    23
  • 解决VirtualBox错误:“FATAL:No bootable medium found!”

    解决VirtualBox错误:“FATAL:No bootable medium found!”

    2021年10月28日
    165
  • Java 最长递增子序列_最长递增子序列问题 Java

    Java 最长递增子序列_最长递增子序列问题 Java最长递增子序列问题LIS(longestincreasingsubsequence)例如给定一个数列,长度为N,求这个数列的最长上升(递增)子数列(LIS)的长度.以1,7,2,8,3,4为例。这个数列的最长递增子数列是1234,长度为4;次长的长度为3,包括178;123等.设数组为:arr设foo(k)为:以数列中第k项(为了与java数组逻辑…

    2022年6月10日
    50
  • NTP协议详解及C语言实现

    NTP协议详解及C语言实现NTP 协议详解前言 NTP 是一种通过网络在计算机之间进行时钟同步的协议 它工作在 OSI 模型的应用层 通过一系列原理与算法 实现以极小的误差 将所有网络中的计算机与 UTC 同步 由于时钟硬件精度的限制 离线的设备不总是能时刻与 UTC 同步 误差随着时间累积使计算机的本地时钟产生较大的偏差 此外 设备初次启动 启动前时钟仍处于默认状态 也需要与现在的时间同步 因此 通过互联网与可靠的时间源同步是必要的 通过这一协议 设备将寻找合适的同步源 将自身时钟与同步源同步 以保证依赖时间的应用能正常运行

    2025年8月8日
    2
  • oracle创建数据库实例

    oracle创建数据库实例首先要确定自己电脑上安装了oracle客户端,电脑是window操作系统。打开DBCA,注意DBCA在Oracle这个文件夹里面:点击后进入创建数据库的界面选择创建数据库,这个界面还能删除已有的数据库【不展示】。点击下一步点击下一步检查一下配置信息,没有问题就点完成加载界面有点慢,需要等几分钟。这样就创建完成了。…

    2022年7月13日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号