axios的接口调用
1. axios的基本特性
axios(官网)是一个基于Promise用于浏览器和node.js的HTTP客户端。
它具有以下特征:
- 支持浏览器和node.js
- 支持promise
- 能拦截请求和响应
- 自动转换JSON数据
2. axios的基本用法
//引入axios.js
axios.get('/adata').then(ret => {//data属性名称是固定的,用于获取后台响应的数据console.log(ret.data)})
3. axios的常用API
- get:查询数据
- post:添加数据
- put:修改数据
- delete:删除数据
GET
通过传统url传递参数:
axios.get('/adata?id=123').then(ret => {console.log(ret.data)})//req.query.id
通过Restful形式的url传递参数:
axios.get('/adata/123').then(ret => {console.log(ret.data)})//req.params.id
通过params选项传递参数:
axios.get('/adata',{params:{id:123}}).then(ret => {console.log(ret.data)})//req.query.id
DELETE
参数传递方式与get类似。
通过url传递参数:
axios.delete('/adata?id=123').then(ret => {console.log(ret.data)})//req.query.id
通过Restful形式的url传递参数:
axios.delete('/adata/123').then(ret => {console.log(ret.data)})//:id//req.params.id
通过params选项传递参数:
axios.delete('/adata',{params:{id:123}}).then(ret => {console.log(ret.data)})//req.query.id
POST
通过选项传递参数(默认传递的是json格式的数据)
axios.post('/adata',{uname:'tom',pwd:123}).then(ret => {console.log(ret.data)})//req.body.uname + '---' + req.body.pwd
通过URLSearchParams传递参数(application/x-www-form-urlencoded)
const params = new URLSearchParams();params.append('param1','value1');params.append('param2','value2');axios.post('/api/test',params).then(ret => {console.log(ret.data)//req.body.uname + '---' + req.body.pwd
})
PUT
参数传递方式与post类似,也是两种格式都支持,一般使用json格式。
axios.put('/adata/123',{uname:'tom',pwd:123}).then(ret => {console.log(ret.data)})//:id//req.body.uname + '---' + req.body.pwd + '---' + req.body.id
4. axios的响应结果
影响结果的主要属性
- data:实际响应回来的数据
- headers:响应头信息
- status:响应状态码
- statusText:响应状态信息
app.get('/axios-json',(req,res) => {//res.send('axios get 传递参数' + req.query.id)res.json({uname:'lisi',age:12})//前端ret.data.uname
})
5. axios的全局配置
axios.defaults.timeout = 3000; //超时时间
axios.defaults.baseURL = ‘http://localhost:3000/app’ //配置请求的基准URL地址,请求路径就可以简化操作
axios.defaults.headers[‘mytoken’] = ‘aqwerwqwerwqer2ewrwe23eresdf23’ //配置请求头信息
6. axios拦截器
6.1 请求拦截器
在请求发出之前设置一些信息
//添加一个请求拦截器
axios.interceptors.request.use(function(config){//在请求发出之前进行一些信息设置config.headers.mytoken = 'hello';return config;
},function(err){//处理相应的错误信息console.log(err)
})
6.1 响应拦截器
在获取数据之前对数据做一些加工处理
//添加一个响应拦截器
axios.interceptors.response.use(function(res){//在这里对返回数据做处理var data = res.data;return data;//return res;
},function(err){//处理相应的错误信息console.log(err)
})
axios的接口调用相关推荐
- page分页问题,根据页码获取对应页面的数据,接口调用
添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request'const MODULE_URL = '/log';export const ac ...
- Vue+axios统一接口管理
通过axios请求接口已经很简单了,但最近在做一个vue项目,想着把axios请求再封装一下,这样api就可以只在一处配置成方法,在使用的时候直接调用这个方法. 但咱们不用每个接口都定义成一个啰嗦的a ...
- vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍
基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...
- axios取消接口请求
自己碰到的问题,扒了很多文档才理清楚,当做是笔记记下来 说到取消接口请求,可能没碰到这样的坑冷不丁还有点懵,为什么会有取消请求这回事,既然决定要请求这个接口了又要取消它,岂不是有点画蛇添足的操作? 1 ...
- Vue 拦截器 多接口调用 实现唯一loding效果 解决同步接口调用loding闪动
大纲 1.引入`import axios from 'axios'` 2.创建loding函数`Loading.service`,创建计数变量`requestCount = 0`, 3.创建axios ...
- 菜鸟裹裹快递查询接口调用
为什么80%的码农都做不了架构师?>>> 声明:本文所有的内容只作学习使用. 菜鸟裹裹是阿里巴巴旗下菜鸟网络的产品,可用于查询淘宝的快递单号,除了快递状态.进程,还包含了淘宝发 ...
- Vue项目中的接口调用
在企业开发过程中,往往有着明确的前后端的分工,前端负责接收.使用接口,后端负责编写.处理接口. 对于前端如何使用接口,今天在Vue中进行讲解. 一个项目往往由这几个部分组成. 其中在src文件夹中,, ...
- Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)
1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...
- Spring源码分析【0】-框架的基础:继承和接口调用链
Spring源码大量的使用继承和接口调用,现举个例子,不搞清楚这个无法看代码. public class A extends B{public void f1() {System.out.printl ...
最新文章
- Rust 数据类型介绍
- 【每日一题】二分查找
- Gradle 2.0用户手册——总览(译)(转)
- 类中友元(c++小细节篇一)
- [转]emacs中文输入问题
- C#透明窗体实现方法
- windows上运行MapReduce出错(Failed to set permissions of path)
- Hibernate中使用Criteria查询及注解——(DeptTest.java)
- Java的Gradle依赖关系,使用编译还是实现?
- android onclick方法吗,Android中button的onClick事件几种方法
- Disabling contextual LOB creation as createClob()
- 微信小程序用户数据解密
- ajax 输入一个整数,jQuery.ajax()仅适用于整数
- python读取配置文件-configparser
- 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
- 用python模拟《流浪地球》的木星引力弹弓效应
- 深度学习2.0-39.RNN训练难题-梯度弥散与梯度爆炸
- 一步一步写一个简单通用的makefile(一)
- 计算机音乐新年好呀,新年好呀新年好 伴奏
- Java基础知识面试题(2021年最新版,持续更新...)整理
热门文章
- matplotlib学习笔记(一)
- Linux之压测工具Siege安装和使用
- 【毕业设计 期末大作业超高分项目】html+php实现图书管理系统详细介绍
- 简易影视小程序v1.0.1版本新增过审功能
- 美国次贷危机如何形成的。
- **龙战于野大数据MR原理启动hive查询表分区,表结构,完整流程*
- mov,movl,movw有什么区别?
- vue 音乐盒app_基于Vue.js的音乐播放器(Webapp)
- python if for 多种写法
- 全屏或者退出全屏检测