axios

一、什么是axios

基于Promise用于浏览器和node.js的http客户端
1.支持Promise
2.支持浏览器和node.js
3.能拦截请求和响应
4.自动转换json数据

二、写法

<script type='text/javascript' src='axios.js'>
//引入之后,就多了个全局变量axios
axios.get('地址').then(res=>{
  //res.data就是返回的数据
  /
})

三、axios常用的API

1.get和delete方式传递参数

axios.get/delete('地址?name=fei&age=18').then(res=>{
  //res.data就是返回的数据
})
axios.get/delete('地址/123).then(res=>{
  //res.data就是返回的数据
  //restful风格的传参也是支持的
})

axios.get/delete('地址',{
     params:{
      id:123
}
}).then(res=>{
  //res.data就是返回的数据
})
//推荐这种风格,params是固定属性,表示发出的参数。

2.post和put请求传参

axios.post/put('地址',{
      id:123

}).then(res=>{
  //res.data就是返回的数据
})
//post方法第二个参数,就是发出的参数。默认传过去的是json格式的数据。

//通过URLSearchParams传递参数
const params =  new URLSearchParams();
params.append('键名','值')
params.append('键名2','值2')
axios.post/put('地址',params).then(res=>{
    //res就是返回的参数
})


//推荐是使用第一种

四、axios响应结果

axios会把结果做一个包装
1.data:数据
2.headers:响应头部
3.status:状态码
4.status Text:响应状态信息

五、axios的全局配置

axios.default.timeout = 3000;//请求等待时间3000ms,超过这个等待时间就会报错
axios.default.baseURL = '请求地址';//默认地址,后边发请求的时候只要发路径就行。
axios.default.headers['mytoken'] = '这个字段的信息';//设置请求头,表示用户登录成功的一把钥匙。后台需要来接收这个请求头,字段也是mytoken,可以接收多个请求头
axios.get('user/login').then(res=>{
   //设置了baseURL 后,请求只需要写后面的路径即可, 会默认的把baseURL 加在路径前面
})

六、axios拦截器

在请求和响应的时候处理一下。

1.请求拦截器

请求的时候拦截请求,处理请求

axios.interceptors.request.use(function(config){
      //在请求发出之前做一些信息设置

     config.header.mytoken = '头部信息'
      //这里设置请求头的mytoken和上面全局配置一样,但这里可以
      //根据config.url来判断请求的路径,做出对应的头部措施。
      //固定的 头部信息可以放在全局配置里面


      //config一定要return出去
      return config
 
}),function(err){
   //处理响应的错误信息
})
axios.get('地址').then(res=>{
      //这时候就会多一个头部信息mytoken 字段
})

2.响应拦截器

在数据返回时,先做处理,再返回

axios.interceptors.response.use(function(res){
      //在请求发出之前做一些信息设置
     //只关心实际的数据res.data,不关心res这个对象,可以在这里处理res这个对象。只保留res.data即可。这样下面get请求的的res就是res.data了。
     //也能处理这个数据
      //这里的res和下面get的res是同一个数据。
      return res
 
}),function(err){
   //处理响应的错误信息
})
axios.get('地址').then(res=>{
      //这时候就会多一个头部信息mytoken 字段
})

7.async和await配合axios

async function fn(){
  const ret  = await axios.get('路径')
  return  ret

}
//async异步函数调用后默认返回以promise对象,可以使用.then()
//要是async异步函数显示的return一个值,.then(res=>{})里的res就是那个返回的值,一般都是将接口的返回值传出去。
fn.then(res=>{
   console.log(res)
   //res是return 返回的值ret
})


//不用async和await写法是
axios.get('路径').then(res=>{})

//使用之后可以把异步写法当作同步写法来写

async和await多是用来处理多个请求,并且请求直接有顺序

async function fn1(){
  let res1 = await axios.get('地址1')
  let res2 = await axios.get('地址2')
   let res3 = await axios.get('地址3')
}

这样就能按顺序发生请求,并且可以在后面的请求中使用前面的请求。await表示必须等这个请求结束之后才能执行后面的代码。把异步函数当作同步函数来写了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值