Vue3使用Axios请求二次封装(包含跨域配置)

一.axios安装与封装

1.1 安装

npm install axios

1.2 二次封装

1.引入 axios
import axios from 'axios'
2.创建axios实例

使用axios对象中的create方法创建实例。可以在创建实例时,配置基础路径、超时响应时间。

const request = axios.create({
   
  //基础路径
  baseURL: import.meta.env.VITE_APP_BASE_API, //基础路径上会携带/api
  timeout: 5000, //超时的时间
})

其中基础路径import.meta.env.VITE_APP_BASE_API配置见第二章环境变量配置。
同时,在配置对象中也可配置请求头等,如:

headers:{
   
    "Content-type": "application/json;charset=UTF-8",
    "Host":"weather.cma.cn",
}
3.请求拦截

使用request实例,添加请求与响应拦截器。

request.interceptors.request.use((config) => {
   
  // 1.获取用户相关的小仓库:获取仓库内部token,登录成功以后携带给服务器
  //const userStore = useUserStore()
  //if (userStore.token) {
   
    //config.headers.token = userStore.token
    //config配置对象,headers属性请求头,经常给服务器端携带公共参数
  //}
  
  // 2.也可在此处对是否有token进行拦截
  
  //返回配置对象,必须返回,否则发不出请求
  return config
})
4.响应拦截

在此处对返回的响应数据进行处理。

request.interceptors.response.use(
  (response) => {
   
    //成功回调
    //简化数据
    return response.data
    //未简化
   // return Promise.resolve(response.data)
  },
  (error) => {
   
    //失败回调:处理http网络错误的
    //定义一个变量:存储网络错误信息
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值