安装axios及其基础用法

1、基本用法

安装

cnpm i axios --save

main.js 中引入 axios

import axios from 'axios'
Vue.prototype.$axios = axios

在组件中使用 axios

<script>export default {mounted(){this.$axios.get('/goods.json').then(res=>{console.log(res.data);})}}
</script>

2、axios请求方法

axios可以请求的方法:

  • get:获取数据,请求指定的信息,返回实体对象
  • post:向指定资源提交数据(例如表单提交或文件上传)
  • put:更新数据,从客户端向服务器传送的数据取代指定的文档的内容
  • patch:更新数据,是对put方法的补充,用来对已知资源进行局部更新
  • delete:请求服务器删除指定的数据

2.1、get请求

示例代码

//方法一,请求格式类似于 http://localhost:8080/goods.json?id=1
this.$axios.get('/goods.json',{params: {id:1}}).then(res=>{console.log(res.data);},err=>{console.log(err);})//方法二
this.$axios({method: 'get',url: '/goods.json',params: {id:1}}).then(res=>{console.log(res.data);},err=>{console.log(err);})

2.2、post请求

post请求一般分为两种类型

  • form-data 表单提交,图片上传、文件上传时用该类型比较多
  • application/json 一般是用于 ajax 异步请求

示例代码

//方法一
this.$axios.post('/url',{id:1}).then(res=>{console.log(res.data);},err=>{console.log(err);})//方法二
$axios({method: 'post',url: '/url',data: {id:1}
}).then(res=>{console.log(res.data);
},err=>{console.log(err);
})//form-data请求
let data = {//请求参数
}let formdata = new FormData();
for(let key in data){formdata.append(key,data[key]);
}this.$axios.post('/goods.json',formdata).then(res=>{console.log(res.data);
},err=>{console.log(err);
})

2.3、put和patch请求

示例代码

//put请求
this.$axios.put('/url',{id:1}).then(res=>{console.log(res.data);})//patch请求
this.$axios.patch('/url',{id:1}).then(res=>{console.log(res.data);})

2.4、delete请求

示例代码

//参数以明文形式提交
this.$axios.delete('/url',{params: {id:1}}).then(res=>{console.log(res.data);})//参数以封装对象的形式提交
this.$axios.delete('/url',{data: {id:1}}).then(res=>{console.log(res.data);})//方法二
axios({method: 'delete',url: '/url',params: { id:1 }, //以明文方式提交参数data: { id:1 } //以封装对象方式提交参数
}).then(res=>{console.log(res.data);
})

3、并发请求

并发请求:同时进行多个请求,并统一处理返回值

示例代码

this.$axios.all([this.$axios.get('/goods.json'),this.$axios.get('/classify.json')
]).then(this.$axios.spread((goodsRes,classifyRes)=>{console.log(goodsRes.data);console.log(classifyRes.data);})
)

4、axios实例

4.1、创建axios实例

示例代码

let instance = this.$axios.create({baseURL: 'http://localhost:9090',timeout: 2000})instance.get('/goods.json').then(res=>{console.log(res.data);
})

可以同时创建多个axios实例。

axios实例常用配置:

  • baseURL 请求的域名,基本地址,类型:String
  • timeout 请求超时时长,单位ms,类型:Number
  • url 请求路径,类型:String
  • method 请求方法,类型:String
  • headers 设置请求头,类型:Object
  • params 请求参数,将参数拼接在URL上,类型:Object
  • data 请求参数,将参数放到请求体中,类型:Object

4.2、axios全局配置

示例代码

//配置全局的超时时长
this.$axios.defaults.timeout = 2000;
//配置全局的基本URL
this.$axios.defaults.baseURL = 'http://localhost:8080';

4.3、axios实例配置

示例代码

let instance = this.$axios.create();
instance.defaults.timeout = 3000;

4.4、axios请求配置

示例代码

this.$axios.get('/goods.json',{timeout: 3000}).then()

以上配置的优先级为:请求配置 > 实例配置 > 全局配置

5、拦截器

拦截器:在请求或响应被处理前拦截它们

5.1、请求拦截器

示例代码

this.$axios.interceptors.request.use(config=>{// 发生请求前的处理return config},err=>{// 请求错误处理return Promise.reject(err);})//或者用axios实例创建拦截器
let instance = this.$axios.create();
instance.interceptors.request.use(config=>{return config
})

5.2、响应拦截器

示例代码

this.$axios.interceptors.response.use(res=>{//请求成功对响应数据做处理return res //该返回对象会传到请求方法的响应对象中},err=>{// 响应错误处理return Promise.reject(err);})

5.3、取消拦截

示例代码

let instance = this.$axios.interceptors.request.use(config=>{config.headers = {token: ''}return config})//取消拦截
this.$axios.interceptors.request.eject(instance);

6、错误处理

示例代码

this.$axios.get('/url').then(res={}).catch(err=>{//请求拦截器和响应拦截器抛出错误时,返回的err对象会传给当前函数的err对象console.log(err);})

7、取消请求

主要用于取消正在进行的http请求。

示例代码

let source = this.$axios.CancelToken.source();this.$axios.get('/goods.json',{cancelToken: source}).then(res=>{console.log(res)}).catch(err=>{//取消请求后会执行该方法console.log(err)})//取消请求,参数可选,该参数信息会发送到请求的catch中
source.cancel('取消后的信息');

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

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

相关文章

MaxCompute2.0 助力众安保险快速成长

摘要&#xff1a;2017云栖大会阿里云大数据计算服务&#xff08;MaxCompute&#xff09;专场&#xff0c;众安保险数据总监王超群带来MaxCompute助力众安保险方面的演讲。本文主要从MaxCompute优势开始谈起&#xff0c;进而谈及大数据能够为公司运营带来的好处&#xff0c;最后…

Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据全量索引构建

文章目录一、基础软件安装1. 安装mysql2. Elasticsearch7.15.2 安装部署3. kibana 安装部署4. logstash-input-jdbc 安装部署二、数据库准备2.1. 创建数据库2.2. 表结构初始化2.3. 数据初始化三、logstash 配置mysql3.1. 创建目录3.2. 上传mysql驱动3.3. 创建jdbc.conf3.4. 创建…

优酷背后的大数据秘密:资源弹性,可支撑EB级存储

在本文中优酷数据中台的数据技术专家门德亮分享了优酷从Hadoop迁移到阿里云MaxCompute后对业务及平台的价值。 本文内容根据演讲视频以及PPT整理而成。 大家好&#xff0c;我是门德亮&#xff0c;现在在优酷数据中台做数据相关的事情。很荣幸&#xff0c;我正好见证了优酷从没…

Python 本身真的有用吗?CSDN要对Python下手了!

Python 作为一种解释型技术脚本语言&#xff0c;越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员&#xff0c;还是年薪百万的 BATJ 的技术大牛都无可否认&#xff1a;Python的应用能力是成为一名码农大神的必要项。 而作为Python初学者来讲&#xff0c;最大的问题…

immutable.js笔记

Immutable.js原理分析 Immutable Data 就是一旦创建&#xff0c;就不能再被更改的数据。对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象。Immutable 实现的原理是 Persistent Data Structure&#xff08;持久化数据结构&#xff09;&#xff0c;也…

揭秘高德地图如何利用MaxCompute管理海量数据

摘要&#xff1a;随着自媒体的发展&#xff0c;传统媒体面临着巨大的压力和挑战&#xff0c;新华智云运用大数据和人工智能技术&#xff0c;致力于为媒体行业赋能。通过媒体大数据开放平台&#xff0c;将媒体行业全网数据汇总起来&#xff0c;借助平台数据处理能力和算法能力&a…

Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建

文章目录一、基础软件安装1. 安装mysql2. Elasticsearch7.15.2 安装部署3. kibana 安装部署4. logstash-input-jdbc 安装部署二、数据库准备2.1. 创建数据库2.2. 表结构初始化2.3. 数据初始化三、logstash 配置mysql3.1. 创建目录3.2. 上传mysql驱动3.3. 创建jdbc.conf3.4. 创建…

为什么说下一个十年的主战场在Serverless?

作者 | 不瞋&#xff0c;阿里云 Serverless 负责人"唯有超越&#xff0c;才能让我们走下去。"这是不瞋在阿里的第十年。从2010 年加入阿里云&#xff0c;不瞋参与了阿里云飞天分布式系统的研发&#xff0c;历任批量计算的架构师、表格存储&#xff08;NoSQL&#xff…

解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

如今&#xff0c;推荐系统已经成为各大电商平台的重要流量入口&#xff0c;谁才能够做到比用户更懂用户&#xff0c;谁占据了新零售时代的主动权。手机淘宝的推荐更是淘宝最大的流量入口和最大的成交渠道之一&#xff0c;其背后是最为复杂的业务形态和最复杂的场景技术&#xf…

mobx笔记

入门案例 1、环境搭建 创建项目 mkdir my-app cd my-app npm init -y安装依赖 cnpm i webpack webpack-cli -D cnpm i html-webpack-plugin -D cnpm i babel-loader babel/core babel/preset-env -D cnpm i babel/plugin-proposal-decorators babel/plugin-proposal-class-…

Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!

在2020年&#xff0c;你的数据仓库和基础设施需要满足哪些需求&#xff1f; 我们总结了几下几点&#xff1a; 首先&#xff0c;当下的企业正快速转向更实时化的模式&#xff0c;这要求企业具备对线上流式数据进行低延迟处理的能力&#xff0c;以满足实时&#xff08;real-tim…

Elasticsearch7.15.2 基础概念和基础语法

文章目录一、基础概念1. ES是什么&#xff1f;2. 名词定义3. 对应关系4. 索引5. 分词二、基础概念2.1. 索引创建2.2. 索引/文档删除2.3. 索引修改三、ES 查询3.1. 简单查询3.2. 分页查询3.3. 复杂查询四、利用analyze api搜索4.1. 索引创建4.2. 索引查询4.3. 分词结果4.4. 索引…

技术重塑未来工作方式

作者&#xff1a; Nutanix亚太及日本地区高级副总裁兼销售负责人 Matt Young 新冠肺炎被宣布为“大流行病”之后&#xff0c;几乎在一夜之间&#xff0c;业务连续性的概念发生了根本性变化。在此之前&#xff0c;业务连续性通常指的是企业在某一办公地点遭遇像洪灾等恶劣天气或…

node环境搭建流程

1、前期准备 要把C盘下的与node和npm相关的目录删除&#xff0c;卸载安装不规范的node环境。 2、Node下载与安装 去node官网下载&#xff1a;https://nodejs.org/zh-cn/download/ 安装参考教程&#xff1a;https://www.runoob.com/nodejs/nodejs-install-setup.html node安…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(本地)

背景&#xff1a; IK分词提供的两个分词器&#xff0c;并不支持一些新的词汇&#xff0c;有时候也不能满足实际业务需要&#xff0c;这时候&#xff0c;我们可以定义自定义词库来完成目标。 目标&#xff1a; 定制化中文分词器&#xff0c;使得我们的中文分词器支持扩展的词汇 …

多点在线构建Noxmobi全球化精准营销系统

摘要&#xff1a;大数据计算服务(MaxCompute&#xff0c;原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型&#xff0c;能够更快速的解决用户海量数据计算问题&#xff0c;有效降低企业成本&am…

云原生安全厂商小佑科技获达泰资本千万级投资

近日&#xff0c;云原生安全领导厂商小佑科技宣布&#xff0c;获得千万级人民币的天使轮融资。该轮融资由达泰资本独家投资&#xff0c;将主要用于加强云原生安全产品核心技术研发、销售网络拓展和生态伙伴建设等关键目标&#xff0c;进而为用户提供更加高效的云原生安全解决方…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)

IK分词提供的两个分词器&#xff0c;并不支持一些新的词汇&#xff0c;有时候也不能满足实际业务需要&#xff0c;这时候&#xff0c;我们可以定义自定义词库来完成目标。 文章目录一、静态web搭建1. 安装nginx2. 创建es目录3. 创建分词文件4. 存放静态5. 验证二、配置远程分词…

万博智云上云 单机软件升级多并发SaaS平台

云栖号案例库&#xff1a;【点击查看更多上云案例】 不知道怎么上云&#xff1f;看云栖号案例库&#xff0c;了解不同行业不同发展阶段的上云方案&#xff0c;助力你上云决策&#xff01; 业务痛点 自2016年开发迁移工具主要面向私有云环境&#xff0c;但是随着公有云用户越来…

学会这10大高性能开发技术,轻松躲过裁员名单!

来源 | 编程技术宇宙责编 | Carol封图 | CSDN 下载自视觉中国程序员经常要面临的一个问题就是&#xff1a;如何提高程序性能&#xff1f;这篇文章&#xff0c;我们循序渐进&#xff0c;从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进&#xff0c;串联起高性能开…