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的接口调用相关推荐

  1. page分页问题,根据页码获取对应页面的数据,接口调用

    添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request'const MODULE_URL = '/log';export const ac ...

  2. Vue+axios统一接口管理

    通过axios请求接口已经很简单了,但最近在做一个vue项目,想着把axios请求再封装一下,这样api就可以只在一处配置成方法,在使用的时候直接调用这个方法. 但咱们不用每个接口都定义成一个啰嗦的a ...

  3. vue和Java做数据交互_基于vue和springmvc前后端分离,json类接口调用介绍

    基于vue和springmvc前后端分离,json类接口调用介绍 版本要求:spring-3.2.9.RELEASE.vue-2.9.2.axios-0.17.1,其中axios作为http clie ...

  4. axios取消接口请求

    自己碰到的问题,扒了很多文档才理清楚,当做是笔记记下来 说到取消接口请求,可能没碰到这样的坑冷不丁还有点懵,为什么会有取消请求这回事,既然决定要请求这个接口了又要取消它,岂不是有点画蛇添足的操作? 1 ...

  5. Vue 拦截器 多接口调用 实现唯一loding效果 解决同步接口调用loding闪动

    大纲 1.引入`import axios from 'axios'` 2.创建loding函数`Loading.service`,创建计数变量`requestCount = 0`, 3.创建axios ...

  6. 菜鸟裹裹快递查询接口调用

    为什么80%的码农都做不了架构师?>>>    声明:本文所有的内容只作学习使用. 菜鸟裹裹是阿里巴巴旗下菜鸟网络的产品,可用于查询淘宝的快递单号,除了快递状态.进程,还包含了淘宝发 ...

  7. Vue项目中的接口调用

    在企业开发过程中,往往有着明确的前后端的分工,前端负责接收.使用接口,后端负责编写.处理接口. 对于前端如何使用接口,今天在Vue中进行讲解. 一个项目往往由这几个部分组成. 其中在src文件夹中,, ...

  8. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  9. Spring源码分析【0】-框架的基础:继承和接口调用链

    Spring源码大量的使用继承和接口调用,现举个例子,不搞清楚这个无法看代码. public class A extends B{public void f1() {System.out.printl ...

最新文章

  1. Rust 数据类型介绍
  2. 【每日一题】二分查找
  3. Gradle 2.0用户手册——总览(译)(转)
  4. 类中友元(c++小细节篇一)
  5. [转]emacs中文输入问题
  6. C#透明窗体实现方法
  7. windows上运行MapReduce出错(Failed to set permissions of path)
  8. Hibernate中使用Criteria查询及注解——(DeptTest.java)
  9. Java的Gradle依赖关系,使用编译还是实现?
  10. android onclick方法吗,Android中button的onClick事件几种方法
  11. Disabling contextual LOB creation as createClob()
  12. 微信小程序用户数据解密
  13. ajax 输入一个整数,jQuery.ajax()仅适用于整数
  14. python读取配置文件-configparser
  15. 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
  16. 用python模拟《流浪地球》的木星引力弹弓效应
  17. 深度学习2.0-39.RNN训练难题-梯度弥散与梯度爆炸
  18. 一步一步写一个简单通用的makefile(一)
  19. 计算机音乐新年好呀,新年好呀新年好 伴奏
  20. Java基础知识面试题(2021年最新版,持续更新...)整理

热门文章

  1. matplotlib学习笔记(一)
  2. Linux之压测工具Siege安装和使用
  3. 【毕业设计 期末大作业超高分项目】html+php实现图书管理系统详细介绍
  4. 简易影视小程序v1.0.1版本新增过审功能
  5. 美国次贷危机如何形成的。
  6. **龙战于野大数据MR原理启动hive查询表分区,表结构,完整流程*
  7. mov,movl,movw有什么区别?
  8. vue 音乐盒app_基于Vue.js的音乐播放器(Webapp)
  9. python if for 多种写法
  10. 全屏或者退出全屏检测