axios基础 :https://www.jianshu.com/p/df464b26ae58
是一个基于Promise封装的ajax库
服务端的内容 用的nodejs
const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors()); app.get('/',(req,res) => { res.send('get'); }); app.get('/list',(req,res) => { res.send('get list'); }); app.post('/post',(req,res) => { res.send('post'); }); app.head('/head',(req,res) => { res.send('head'); }); app.options('/options',(req,res) => { res.send('options'); }); app.listen(8848,() => { console.log('success'); });这个axios库提供了对应的请求的请求方法
比如axios.get(),axios.post()… get/post/head/put/options…
axios.get([url],[options]); //第一个参数就是发送请求的地址/接口(api) //第二参数是参数的配置项(就是需要传给服务器的信息 比如:ID什么的) //get请求中,会把params中的减值对拼接成urlencode格式的字符串,然后以问号传递参数的方式传递给服务器 就是?key=value&key=value 格式 //当然不写配置文件 自己直接拼在api中也行 axios.get('ttp://127.0.0.1:8848/',{ params:{ name:'aaa', age:9 } }); //post 中 配置文件中传递的内容都相当于基于请求主体传递给服务器,但是传递给服务器的内容格式是RAM(JSON格式字符串),不是x-www-form-urlencoded axios.post('ttp://127.0.0.1:8848/post',{ name:'aaa', age:9 }); //基于get和post方法发送请求,返回的结果都是promise实例 let promise = axios.get('ttp://127.0.0.1:8848/',{ params:{ lx:12, } }); promise.then(res => { console.log(res);//结果是个对象 //对象中有 //data(从服务器获得的响应主体内容) headers(从服务器获得的响应头信息) //request(创建的ajax实例) status(状态码) statusText(状态码的描述) //config(基于axios发送请求的时候做的配置项) }).catch(msg =>{//如果请求传递失败就走catch console.log(msg);//打印的是请求失败的原因 })当需要在两个请求都完成的情况下才去执行某些代码
//1. let resultA; axios.get('A').the(resultA => { return axios.get('B'); }).then(resultB => { console.log(resultA,resultB) //在这里就是在AB两个请求都成功的时候才会执行 //resultB是B成功的结果 //这种方法想要A请求的结果 只能将A的变量作为一个全局变量 不然访问不到 })axios中提供了一种一次并发多个请求 all方法 这个方法就能实现在多个请求都完成时 做一些操作
let sendAry = [ axios.get('http://127.0.0.1:8848/'), axios.get('http://127.0.0.1:8848/list'), axios.post('http://127.0.0.1:8848/post'), ] axios.all(sendAry).then(result =>{ console.log(result)//返回的是一个数组 每一个元素是一个请求结果 });返回的结果
返回的结果