axios使用说明

安装

使用axios库需要先在项目中安装axios,可以使用npm或yarn命令来安装:

npm install axios
# 或者
yarn add axios

发送请求

在发送请求之前,我们需要先导入axios模块:

import axios from 'axios';

GET请求

发送GET请求的方法是axios.get(url[, config]),其中url是请求的地址,config是请求配置选项,比如请求头、超时时间等。

axios.get('/api/user/123')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

POST请求

发送POST请求的方法是axios.post(url[, data[, config]]),其中url是请求的地址,data是请求发送的数据,config是请求配置选项。

axios.post('/api/user', {name: 'John', email: 'john@example.com'})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

并发请求

axios支持并发请求,可以使用axios.all()方法来同时发送多个请求,然后使用axios.spread()方法来处理请求的响应结果。

axios.all([
  axios.get('/api/user/123'),
  axios.get('/api/user/456')
])
.then(axios.spread((user1, user2) => {
  console.log(user1.data);
  console.log(user2.data);
}))
.catch(error => {
  console.log(error);
});

请求配置

可以使用config选项来配置请求,比如设置请求头、超时时间、请求数据格式等。

axios.get('/api/user', {
  headers: {'X-Requested-With': 'XMLHttpRequest'},
  timeout: 1000,
  params: {id: 123},
  responseType: 'json'
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.log(error);
});

请求拦截器

可以使用axios.interceptors.request.use()方法来添加请求拦截器,可以在请求发送前对请求进行处理或者添加通用的请求头等信息。

axios.interceptors.request.use(config => {
  config.headers.Authorization = 'Bearer ' + getToken();
  return config;
}, error => {
  return Promise.reject(error);
});

响应拦截器

可以使用axios.interceptors.response.use()方法来添加响应拦截器,可以在接收到响应后对响应进行处理,比如对响应数据进行加工、统一处理响应错误等。

axios.interceptors.response.use(response => {
  if (response.status === 200) {
    return response.data;
  } else {
    return Promise.reject(new Error('请求失败'));
  }
}, error => {
  return Promise.reject(error);
});

取消请求

axios提供了取消请求的功能,可以在需要取消请求的时候使用cancel token来取消请求。

const source = axios.CancelToken.source();

axios.get('/api/user', {
  cancelToken: source.token
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  if (axios.isCancel(error)) {
    console.log('请求被取消');
  } else {
    console.log(error);
  }
});

source.cancel('请求被取消');

处理响应错误

在请求过程中可能会出现错误,比如请求超时、网络错误、服务器返回错误等,我们可以使用.catch()方法来捕获这些错误,进行处理或者提示用户。

axios.get('/api/user')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // 服务器返回了错误状态码
      console.log(error.response.status);
      console.log(error.response.data);
    } else if (error.request) {
      // 请求发出去了但是没有收到响应
      console.log(error.request);
    } else {
      // 在设置请求时发生了一些错误
      console.log('请求错误', error.message);
    }
  });

参考资料

axios的使用文档:https://axios-http.com/docs/intro

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值