axios应用和配置方法

本文详细介绍了axios的特性,包括支持Promise API、拦截器、请求和响应转换等。讲解了axios的HTTP请求方法,如GET、POST等,并区分了params和data的参数传递方式。此外,还涉及并发请求处理、全局和实例配置、错误处理,以及axios的进阶用法如取消请求和在项目中的实际应用。
摘要由CSDN通过智能技术生成

axios特性

1.常规特性

  • 支持Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据(在请求的时候,有一些敏感信息需要加密,然后回来的时候可以解密)
  • 取消请求
  • 自动转换JSON数据
  • 客户端支持防御XSRF(客户端常见攻击方式)

2.支持的浏览器

  • 谷歌Chrome
  • 火狐
  • 欧朋
  • IE (ie8以上)
  • Safari
  • 微软Edge

axios --> http请求方法

  • get 获取数据
  • post 提交数据(表单提交+文件上传)
  • put 更新数据(所有数据推送到后端)
  • patch 更新数据(只将修改的数据推送到后端)
  • delete 删除数据
  • heade 只获取头部信息

axios基础用法 2种形式的写法

以 get 为例子:

  1. 写法1
axios.get('/url').then( (res)=>{})
  1. 写法2
  axios({
      method:'get',
      url:'/url'
    }).then((res)=>{
     
    })

传参数形式 params和data的区别

params形式将拼接在url

axios.get('/url',{params:{id:1}}).then( (res)=>{})
// http://localhost:8080/#/axios?id=1

data形式参数会在请求体

  axios({
      method:'get',
      url:'/url',
      data:{
			id:2
		}
    }).then((res)=>{
     
    })

并发请求(多个请求)处理

用法例子:

axios.all([
 	   axios.get('/swiper'),
       axios.get('/activitys'),
       axios.get('/seconds'),
 ]).then(axios.spread((swiperData, activityData, secondsData) => {
     
 }));

axios的配置参数有哪些

axios.create({
  basseURL:'',//请求的域名,基本地址
  timeout:1000,//请求超时时长
  url:'', //请求路径
  method:'',  //请求方法
  headers:{
    token:''  //一般都有登录人信息
  },//请求头
  params:{},//请求参数将拼接在url 里
  data:{}  //请求参数会在请求体里
})

axios—全局配置—实例配置—请求配置

1.全局配置

例子:

axios.defaults.baseURL = 'http://';    //全局配置baseURL 
axios.defaults.timeout= 3000;    //全局配置请求超时时长

2.实例配置

例子:

 let kk = axios.create();
 kk.default.timeout = 3000;

3.请求配置

例子:

  kk.get('/data',{
      timeout:5000
    })

axios拦截器

1.请求拦截器

  • 注意是用request
axios.interceptors.request.use((config) => {
	//在发送请求前做什么
    return config;
 }, (error) => {
    // 请求错误的时候做什么
    return Promise.reject(error);
 });

2.响应拦截器

  • 注意是用response
axios.interceptors.response.use((response) => {
    return response;
 }, (error) => {
    // 处理错误的响应
    return Promise.reject(error);
 });

3.取消拦截器

//1.声明拦截器后
let kk = axios.interceptors.request.use((request) => {
    return request;
 }, (error) => {
    return Promise.reject(error);
 });
 //2.取消方法
 axios.interceptors.request.eject(kk)

错误处理

  1. 利用catch方法 获取
axios.get('/data',{
      timeout:5000
    }).catch((err) => {
		//错误方法
})
  1. 实际开发中,一般添加统一错误处理
  • 请求错误统一处理
axios.interceptors.request.use((request) => {
    return request;
 }, (error) => {
 	//请求错误,一般http状态码以4开头,常见:401超时,404  not found
 	//添加提示
 	alert(err)
    return Promise.reject(error);   //错误
 });
  • 响应错误统一处理
axios.interceptors.response.use((response) => {
    return response;
 }, (error) => {
    // 响应错误,一般http状态码以5开头,常见:500系统错误,502系统重启
    //添加提示
 	alert(err)
    return Promise.reject(error);
 });

axios进阶用法(取消请求)

实际应用不多,只做了解就可以,待更新…


axios进一步封装,在项目中的实际应用

待更新…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值