网络请求axios
axios的定义
- axios是一个基于Promise,用于浏览器和node的HTTP客户端
axios的功能特点
- 在浏览器中发送 XMLHttpRsquests 请求
- 在node.js中发送http请求
- 支持Promise API
- 拦截请求和响应
- 转换请求和响应数据
- 等等
axios框架的基本使用
- npm安装
npm install axios -S
发送pos请求的简单演示
axios({
url: 'http://123.207.32.32:8000/home/multidata',
method: 'pos'
}).then(res => console.log(res))
axios的请求参数
- baseURL:请求的根路径
baseURL = 'http://123.207.32.32:8000'
- timeout:请求超时时间
timeout = 5000
- method:发送请求所使用的方法,默认使用get方法
method = 'get'
- params:URL查询对象
params = {type: 'pop',page: 1}
发送并发请求
- axios.all(),接收一个数组作为参数,返回一个promise对象
- 使用axios.spread可将数组[res1, res2]展开为res1,res2
axios.all([
axios({url: '/home/multidata'}),
axios({url: '/home/data', params: {type: 'pop',page: 1}})
]).then(axios.spread(res1, res2) => {
console.log(res1)
console.log(res2)
})
创造axios实例将全局配置改为局部配置
- 调用create方法,该方法会返回一个axios实例,该实例同样会返回一个Promise对象
const instance1 = axios.create({
baseURL: 'http://123.207.32.32:8000',
timeout: 500
})
instance1({
url: '/home/multidata'
}).then(res => console.log(res))
网络模块封装
- 将网络相关信息单独放入一个文件中,导出函数
//request.js
import axios from 'axios'
export function request(config) {
const instance = axios.create({
baseURL: 'http://123.207.32.32:8000',
timeout: 5000
})
// 拦截器
// ……
return instance(config)
}
- 使用
import {
request
} from './network/request.js'
request({
url: '/home/multidata'
}).then(res => console.log(res))
.catch(err => console.log(err))
axios拦截器
- axios提供了拦截器,用于我们在每次发送请求或得到响应后,进行对应的处理
export function request(config) {
// 1.创建做axios实例
const instance = axios.create({
baseURL: 'http://123.207.32.32:8000',
timeout: 5000
})
- 请求拦截
axios.interceptors.request.use(config => {
console.log(config)
// 1.比如config中的一些不符合服务器的要求
// 2.比如每次发送网络请求时,都希望在界面中显示一个请求的图标
// 3.某些网络请求(比如登录),必须携带一些特殊的信息
// 必须要返回拦截的对象
return config
}, err => {
return err
})
- 响应拦截
instance.interceptors.response.use(res => {
// console.log(res)
return res.data
}, err => {
console.log(err)
return err
})
//3、发送真正的网络请求
return instance(config)
网络请求axios的更多相关文章
- 使用axios优雅的发起网络请求
原文链接:https://www.jianshu.com/p/73585303fdc0 公司项目使用了vue作为技术栈,便理所应当地使用了官方推荐的axios进行网络请求,这里记录下axios的封装方 ...
- Axios 网络请求组件封装 (鉴权、刷新、拦截)
一.前言 注意:本教程需要你对axios有一定的了解,不适用于小白(只能借鉴,希望你能自己动手),注释都写的很清楚.此封装并非完整版,已进行部分删减修改操作,但仍然适用于大部分业务场景,如果不适用于你 ...
- 十. Axios网络请求封装
1. 网络模块的选择 Vue中发送网络请求有非常多的方式,那么在开发中如何选择呢? 选择一:传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢?非常好解释配置和调用方式等非常混 ...
- vue(24)网络请求模块axios使用
什么是axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 主要的作用:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能. a ...
- React Native网络请求
很多移动应用都需要从远程地址中获取数据或资源.你可能需要给某个REST API发起POST请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容--以下就是你会用到的东西.新手可以对照这 ...
- Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...
- web开发网络请求到数据的整合办法
开发中向服务器请求到的数据是特别复杂的,需要从中抽离出需要展示的数据进行展示个和交互. 思路: 先将请求到的复杂数据传递到一个类A中,从类A里抽离出需要的数据.需要展示数据的地方,面向类A开发,类A关 ...
- Jest中Mock网络请求
Jest中Mock网络请求 最近需要将一个比较老的库修改为TS并进行单元测试,修改为TS还能会一点,单元测试纯粹是现学现卖了,初学Jest框架,觉得在单元测试中比较麻烦的就是测试网络请求,所以记录一下 ...
- 介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)
1.打开开发者工具:右键-->检查 (快捷键 f12) 2.开发者工具介绍: (1): 选择页面的dom进行查看 (2):设备适配 (3)元素: ① 可以查找到界面对应的dom: ② 通过计算样 ...
随机推荐
- 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念
深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 一.AQS框架简介 AQS诞生于Jdk1.5,在当时低效且功能单一的synchroni ...
- 2019 南京网络赛 B super_log 【递归欧拉降幂】
一.题目 super_log 二.分析 公式很好推出来,就是$$a^{a^{a^{a^{...}}}}$$一共是$b$个$a$. 对于上式,由于指数太大,需要降幂,这里需要用到扩展欧拉定理: 用这个定 ...
- Linux wget 使用笔记
wget 是 Linux 上最常用的文件下载工具,简单实用.记录一下一些常用的操作备查. 最常用最简单的操作就是直接使用一个 URL 下载 下载互联网上指定的文件 wget https://gemme ...
- 内存模型与c++中的memory order
概 c++的atomic使用总会配合各种各样的memory order进行使用,memory order控制了执行结果在多核中的可见顺序,,这个可见顺序与代码序不一定一致(第一句代码执行完成的结果不一 ...
- 【linux】系统编程-4-共享内存
目录 前言 6. 共享内存 6.1 概念 6.2 操作函数 6.2.1 shmget() 6.2.2 shmat() 6.2.3 shmdt() 6.2.4 shmctl() 6.3 例子 参考: 前 ...
- java例题_43 求0—7所能组成的奇数个数
1 /*43 [程序 43 求奇数个数] 2 题目:求 0-7 所能组成的奇数个数. 3 */ 4 5 /*分析 6 * 1.0不能作最高位且最低位只能是1,3,5,7; 7 * 2.没有限定是几位数 ...
- PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642
PAT (Advanced Level) Practice 1046 Shortest Distance (20 分) 凌宸1642 题目描述: The task is really simple: ...
- ES6 第二天
三点运算符 <script type="text/javascript"> function func(...params){ params.forEach(funct ...
- Day16_91_通过反射机制获取父类和父接口
通过反射机制获取父类和父接口 * 代码: import java.net.InterfaceAddress; public class ReflectTest14 { public static vo ...
- Day03_17_数组
数组 什么是数组? 数组是多个相同类型数据按照一定顺序排列的有序集合,并使用一个名字命名,通过编号的方式,对这些数据进行统一的管理. 数组也是对象,数组中的元素相当于数组对象的成员变量 数组的长度是固 ...