AXIOS快速上手

AXIOS

常见的请求方式

一共是八种,但我们常见的只有4种

GET 查 天生没有请求体,无法携带请求体参数

POST 增

PUT 改

DELETE 删

常见的请求参数

query参数(查询字符串参数)

params参数

请求体参数(json编码、urlencoded编码)

用axios发送get请求

准备工作

在BootCDN中查找到axios下载并引入

<script type="text/javascript" src="对应文件引入路径"></script>

用axios发送get请求

get请求无参数
简写形式
<body>
	<button onclick="test1()">获取所有人(get请求--不传参数)</button>
	<script type=text/javascript>
        function text1(){
        	let result =axios.get("粘贴复制对应地址")
        	//此时result返回的是一个pending状态的promise实例
    }
    </script>
</body>
<body>
	<button onclick="test1()">获取所有人(get请求--不传参数)</button>
	<script type=text/javascript>
        async function text1(){
        	let result = await axios.get("粘贴复制对应地址")
        	//此时result返回的是一个axios封装的对象,里面包含很多信息,其中服务器返回给我们的信息在data中
            console.log(result.data) //{state:1,msg:'获取成功',data:Array(3)}
        	//如果想直接要数据,则需要 result.data.data
    }
    </script>
</body>
完整写法
<body>
	<button onclick="test1()">获取所有人(get请求--不传参数)</button>
	<script type=text/javascript>
        async function text1(){
        	let result = await axios({
                url:'粘贴复制对应地址',
                method:'GET'
            }}
    </script>
</body>
get请求query参数

案例:根据学员id,获取某一个学员信息

方法一:简单写法,query参数直接拼在路径中

async function text2(){
    //此方法为错误写法,因为固定了id值,需直接写需要查找的学员id,获取学员的个人信息
    let result = await axios.get('对应路径?id=123456')
}

方法二:简单写法,靠配置项,指定query参数,携带query参数时,配置项叫params!!!!!!

async function text2(){
    let result = await axios.get('对应路径',{
        params:{
            id:'对应学员id'
        }
    })
}

方法三:完整写法

async function text2(){
    let result = await axios({
        url:'对应路径',
        method:'GET',
        params:{
            id:'对应学员id'
        }
    })
}
get请求params参数

案例:根据人员年龄(age)获取一些人

方法一:简单写法,只能自己拼

async function text3(){
    let result await axios.get('对应路径')
    //需将路径中的age更改为想要查找的具体数字
}

方法二:完整写法

async function text3(){
    let result = await axios({
        url:'对应路径/params参数值'method:'GET'
    })
}

用axios发送post请求

post请求,请求体参数

案例:根据姓名和年龄,添加一个人

方法一:简单写法,json编码的请求体参数

async function text4(){
    //post内有两个参数,参数一是对应路径url,参数二是请求体参数
    let result = await axios.post('对应路径',{name:'困困',age:18})
    //此时result的值为添加成功的返回值,并包含添加人信息
}

方法二:简单写法,urlencoded编码的请求参数

async function text4(){
    let result = await axios.post('对应路径','name=老八&age=37')
}

方法三:完整写法,json编码的请求体参数

async function text4(){
    let result = await axios({
        url:'对应地址'method:'POST',
        data:{name:'邱邱',age:25}
    })
}

方法四:完整写法,urlencoded编码的请求参数

async function text4(){
	let result = await axios({
        url:'对应地址',
        method:'POST',
        data:'name=邱邱&age=25'
    })
}

用axios发送put请求

案例:根据学员id,学员姓名,学员年龄,更新一个学员信息

方法一:简单写法,json编码的请求体参数

async function text5(){
    let result = await axios.put('对应地址',{id:'XXX',name:'XXX',age:XX})
}

方法二:简单写法,url’encoded编码的请求参数

async function text5(){
    let result = await axios.put('对应地址','id=XXX&nameXXX&age:XX')
}

方法三:完整写法,json编码的请求体参数

async function text5(){
    let result = await axios({
        url:'对应地址',
        method:'PUT',
        data:{
            id:'XXX',
            name:'XXX',
            age:XX
        }
    })
}

方法四:完整写法,urlencoded编码的请求参数

async function text5(){
    let result = await axios({
        url:'对应地址',
        method:'PUT',
        data:'id=XXX&name=XXX&age=XX
    })
}

用axios发送delete请求

案例:根据学员id,删除一个学员

方法一:简单写法,json编码的请求体参数

async function text6(){
    let result = await axios.delete('对应地址',{data:{id:'对应学员id值'}})
}

如果需要传递一个数组,则需要包裹在data中进行编写

async function text6(){
    let result = await axios.delete('对应地址',{data:[1,2,3]})
}

方法二:简单写法,urlencoded编码的请求参数

async function text6(){
    let result = await axios.delete('对应地址',data:'id=对应学员id')
}

方法三:完整写法

async function text6(){
    let result = await axios({
        url:'对应地址',
        method:'DELETE',
        data:{
            {data:{id:'对应学员id值'}
        }
    })
}

拦截器

在请求或响应被then或catch处理前拦截它们

请求拦截器

可以简单理解为地铁进站安检,在你想要发请求前,统一增加要做的某件事情

//添加请求拦截器
axios.interceptors.request.use((config)=>{
    //在发送请求前要做的事情,例如给发送的地址进行简写拆分
    return config;
},function(error){
    //对请求错误做些什么
    return Promise.reject(error);
});

响应拦截器

可以简单理解为火车出站的案件,在下车出站时再次进行安检

//添加相应拦截器
axios.interceptors.response.use(
	//响应成功的回调
	(res)=>{
    	return res.data//此值将会赋值给let result = await axios.get('对应路径')的result,相当于帮助程序员取出相应成功返回值的值
	}
	//响应失败的回调
	(error)=>{
    	return Promise。reject(err)//直接返回err最后的结果时axios成功,必须要返回一个失败的Promise实例
    	//或return new promise()=>{}  直接中断promise链,此时便可不需要太try catch
	}//此时可以将axios请求写在try catch里面,以便于获取错误值
)

代码报错

404 服务器没有

401 你没有权限

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值