vite解决跨域问题,给axios增加请求响应拦截器

696 阅读1分钟

在vite文档中也有教程

  server:{
    proxy: {
      // 选项写法
      '/api': {
        target: 'http://ceshi13.dishait.cn',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
        }
    }
  },

在配置文件中修改为/api

import axios from "axios";

const service = axios.create({
//
  baseURL:"/api"

})

export default service

axion.js 这样登录界面可以更简洁 同时其他页面也可以共享这里

// 添加请求拦截器
service.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 往header头自动添加token
  const cookie = useCookies()
  const token = cookie.get("admin-token")
  if(token){
    config.headers["token"] = token
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(function (response) {
  // 对响应数据做点什么 这里拿token
  return response.data.data;
}, function (error) {
  // 对响应错误做点什么
        ElNotification({
        type: 'error',
        message: error.response.data.msg || '请求失败',
        duration: 3000
      })
  return Promise.reject(error);
});