axios请求

安装 Axios

在项目中安装 Axios 依赖,可以通过 npm 或 yarn 进行安装。

bash 复制代码
npm install axios

或

bash 复制代码
yarn add axios

引入 Axios

在需要使用 Axios 的文件中引入 Axios。

javascript 复制代码
import axios from 'axios';

发起 GET 请求

使用 Axios 发起 GET 请求,获取数据。

javascript 复制代码
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

发起 POST 请求

使用 Axios 发起 POST 请求,发送数据到服务器。

javascript 复制代码
axios.post('https://api.example.com/data', { key: 'value' })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

配置全局默认值

设置 Axios 的全局默认配置,例如 baseURL 和 headers。

javascript 复制代码
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = 'Bearer token';

创建 Axios 实例

创建自定义的 Axios 实例,用于不同的 API 配置。

javascript 复制代码
const api = axios.create({
  baseURL: 'https://api.example.com',
  timeout: 1000,
  headers: { 'X-Custom-Header': 'foobar' }
});

api.get('/data')
  .then(response => {
    console.log(response.data);
  });

处理请求和响应拦截器

使用拦截器在请求或响应被处理前进行统一处理。

javascript 复制代码
axios.interceptors.request.use(config => {
  config.headers.Authorization = 'Bearer token';
  return config;
}, error => {
  return Promise.reject(error);
});

axios.interceptors.response.use(response => {
  return response.data;
}, error => {
  return Promise.reject(error);
});

取消请求

使用 CancelToken 取消正在进行的请求。

javascript 复制代码
const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('https://api.example.com/data', {
  cancelToken: source.token
}).catch(error => {
  if (axios.isCancel(error)) {
    console.log('Request canceled', error.message);
  }
});

source.cancel('Operation canceled by the user.');

并发请求

使用 axios.all 和 axios.spread 处理并发请求。

javascript 复制代码
axios.all([
  axios.get('https://api.example.com/data1'),
  axios.get('https://api.example.com/data2')
]).then(axios.spread((response1, response2) => {
  console.log(response1.data, response2.data);
}));

错误处理

统一处理请求中的错误,包括网络错误和服务器错误。

javascript 复制代码
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      console.error(error.response.status, error.response.data);
    } else if (error.request) {
      console.error(error.request);
    } else {
      console.error(error.message);
    }
  });
相关推荐
Dwzun10 分钟前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
她说可以呀10 小时前
Vue插槽
前端·javascript·vue.js
qq_4480111610 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
志尊宝11 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
兰亭妙微UI设计公司15 小时前
兰亭妙微ui设计公司分享:B端组件命名如何支持团队协作
前端·javascript·vue.js
小大宇15 小时前
Vue知识点-ElementPlus-03提示框+询问+通知
前端·javascript·vue.js
潇小墨18 小时前
我给自己造了一个桌面效率助手:剪贴板、截图提单、全盘文件搜索,全都塞进快捷键里
vue.js
jktantan19 小时前
前端也需要事务:Vue Router 乐观更新、回滚与“过期事务”
前端·javascript·vue.js
biu_biubiu20 小时前
我开源了 Codebook
前端·vue.js
小李科技21 小时前
【性能优化】事件委托:目标定位与 React/Vue 实战
前端·vue.js·react.js·面试·性能优化·前端框架