当前位置: 首页 > news >正文

axios使用过程

1.基本用法

1.安装axios

npm install axios
# 或
yarn add axios

2.发起请求

// GET请求
axios.get('/user?ID=12345').then(response => {console.log(response.data);}).catch(error => {console.log(error);});// POST请求
axios.post('/user', {firstName: 'Fred',lastName: 'Flintstone'}).then(response => {console.log(response);}).catch(error => {console.log(error);});

2.高级配置

1.请求配置

axios({method: 'post',url: '/user/12345',data: {firstName: 'Fred',lastName: 'Flintstone'},headers: {'X-Requested-With': 'XMLHttpRequest'},timeout: 1000,responseType: 'json'
});

2.全局配置

axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

3.拦截器

1.请求拦截器

axios.interceptors.request.use(config => {// 在发送请求前做些什么config.headers.Authorization = 'Bearer token';return config;
}, error => {// 对请求错误做些什么return Promise.reject(error);
});

2.响应拦截器

axios.interceptors.response.use(response => {// 对响应数据做点什么return response.data;
}, error => {// 对响应错误做点什么return Promise.reject(error);
});

4.并发请求

function getUserAccount() {return axios.get('/user/12345');
}function getUserPermissions() {return axios.get('/user/12345/permissions');
}Promise.all([getUserAccount(), getUserPermissions()]).then(results => {const acct = results[0];const perm = results[1];});

5.错误处理

axios.get('/user/12345').catch(error => {if (error.response) {// 请求已发出,服务器响应状态码不在2xx范围内console.log(error.response.data);console.log(error.response.status);console.log(error.response.headers);} else if (error.request) {// 请求已发出但没有收到响应console.log(error.request);} else {// 设置请求时发生错误console.log('Error', error.message);}console.log(error.config);});

6.axios封装

//src/utils/request.js
import axios from 'axios';// 创建axios实例
const service = axios.create({baseURL: process.env.BASE_API || '/api',timeout: 10000, // 请求超时时间withCredentials: true // 跨域请求时是否需要使用凭证
});// 请求拦截器
service.interceptors.request.use(config => {// 在发送请求之前做些什么// 例如:添加tokenconst token = localStorage.getItem('token');if (token) {config.headers['Authorization'] = `Bearer ${token}`;}return config;},error => {// 对请求错误做些什么console.error('请求拦截器错误:', error);return Promise.reject(error);}
);// 响应拦截器
service.interceptors.response.use(response => {// 对响应数据做点什么const res = response.data;// 这里可以根据项目实际情况处理业务逻辑错误// 例如:如果后端返回code不为0,则认为是业务错误if (res.code !== 0) {// 处理业务错误console.error('业务错误:', res.message);return Promise.reject(new Error(res.message || 'Error'));} else {return res;}},error => {// 对响应错误做点什么console.error('响应错误:', error);// 处理HTTP错误状态码if (error.response) {switch (error.response.status) {case 401:// 处理未授权console.error('未授权,请重新登录');break;case 403:console.error('拒绝访问');break;case 404:console.error('资源不存在');break;case 500:console.error('服务器错误');break;default:console.error('未知错误');}}return Promise.reject(error);}
);// 导出封装后的axios实例
export default service;
//src/api/index.js
import request from '@/utils/request';// 用户相关API
export const getUserInfo = (id) => {return request({url: `/user/${id}`,method: 'get'});
};export const updateUserInfo = (data) => {return request({url: '/user/update',method: 'post',data});
};// 示例:商品相关API
export const getProductList = (params) => {return request({url: '/products',method: 'get',params});
};export const createProduct = (data) => {return request({url: '/products',method: 'post',data});
};
http://www.dtcms.com/a/491875.html

相关文章:

  • php编程软件关键词优化的策略
  • 网站建设的认识个人网站建设 实验报告
  • 搭建个人博客--hexo
  • 今天我们继续学习python3编程之python基础
  • 做网站怎样找1 网站建设的目标是什么
  • 手机网站建设哪里好网页制作工具程
  • 智能建筑的“智慧大脑”:BAS、能效与IBMS集成系统
  • interface和type
  • Micro850 控制器支持的通信协议及应用指南
  • 便宜网站建设哪家好如何推广seo
  • shell编程语言---循环
  • 【Go】--值类型与引用类型
  • 用串口控制DAC
  • 兼职20网站开发成都工装装修设计公司
  • asp.net 获取网站域名wordpress注册码
  • qData 数据中台在 ARM 架构与信创环境下的兼容性与适配研究
  • 网站建设图片编辑中国建设银行招聘网站通知
  • 可做商业用途的图片网站自己做的网站怎么发布到网上
  • MYSQL 表连接查询,左/右/内连接
  • [Python环境] pip install 报 ProxyError?试试关闭本次终端代理设置!
  • Linux学习笔记--Pinctrl子系统驱动
  • 动力无限西安网站建设网络推广是网络营销的基础
  • 如何在conda虚拟环境中设置CUDA_HOME变量
  • 建设厅试验员考试报名网站兰州公司做网站
  • 人工智能的本质是什么
  • SpringBoot-依赖管理和自动配置
  • 网站seo优化有哪些方面定制一款app要多少钱
  • 南通建设工程造价信息网站网站开发需要解决难题
  • 摄影网站开发的意义企业网站搭建步骤
  • 做网站的好处和坏处厦网站建设培训学校