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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 路由器WAN口IP显示为10、100、172开头,网络被电信联通等运营商做了NAT转发

    路由器WAN口IP显示为10、100、172开头,网络被电信联通等运营商做了NAT转发

    2021年11月17日
    44
  • com.google.android.xmppService与com.google.android.gtalkservice

    com.google.android.xmppService与com.google.android.gtalkservicecom.google.android.xmppService被更名com.google.android.gtalkservice,并且com.google.android.gtalkservice已经从release的SDK中拿掉了,所以我们在SDK找不到相关的信息的。com.google.android.gtalkservice是GTalk用到的service.GTalk是基于XMPP协议的。…

    2022年10月16日
    5
  • 素数算法总结

    素数算法总结素数算法总结转载自:_Wilbert在平时做题目或者进行预算的时候,素数的出现次数总是十分频繁。今天我们就来一点一点的说一说关于素数的一些算法。素数算法总结朴素判断素数算法Miller_Rabin素性测试筛选法容斥原理Meissel-Lehmer算法朴素判断素数算法就判断素数而言,事实上是非常简单的了。根据定义,判断一个整数n是否是素数,只需要去判断在整数区间[2,n-1]之内

    2022年6月18日
    24
  • python字符串删除指定字符「建议收藏」

    python字符串删除指定字符「建议收藏」python字符串中去除指定字符或字符串:1,Pythonstrip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。2,Pythonreplace()方法把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。参考链接:https://blog.csdn.net/qq_31672701/article/details/100927305…

    2022年5月1日
    701
  • django drf jwt_jwt验证原理

    django drf jwt_jwt验证原理前言带着问题学习是最有目的性的,我们先提出以下几个问题,看看通过这篇博客的讲解,能解决问题吗?什么是JWT?为什么要用JWT?它有什么优势?JWT的认证流程是怎样的?JWT的工作原理?我们

    2022年8月7日
    6
  • t分布, 卡方x分布,F分布

    t分布, 卡方x分布,F分布T分布:温良宽厚本文由“医学统计分析精粹”小编“Hiu”原创完成,文章采用知识共享Attribution-NonCommercial-NoDerivatives4.0国际许可协议(http://c

    2022年8月2日
    8

发表回复

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

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