Vue3如何配置多级代理
作者:在努力的前端小白
这篇文章主要介绍了Vue3如何配置多级代理问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Vue3配置多级代理
在Vue3项目中,我们可以通过修改 vue.conig.js或者vue.conig.ts 文件来配置多个proxy。
下面是一个示例的 vue.config.ts 文件,我分别设置了两个不同的请求地址,分别用于处理不同的请求。
1、在vite.config.ts里面配置
export default defineConfig({
  plugins: [vue()],
  server: {
    open: true, //自动打开浏览器
    host: "0.0.0.0",
    port: 8989,
    // 设置反向代理,跨域
    proxy: {
      '/get': {
        // 后台地址
        target: 'https://xxx.xxx.xxx.x:8080', //填写后台真实地址
        changeOrigin: true,
        // 访问https的接口,需要加secure
        secure: false,
        rewrite: path => path.replace(/^\/get/, '')
      },
      '/api': {
        // 后台地址
        target: 'https://xxx.xxx.xxx.x:8080', //填写后台真实地址
        changeOrigin: true,
        // 访问https的接口,需要加secure
        secure: false,
        rewrite: path => path.replace(/^\/api/, '')
      },
    
})2.配置axios
// axiosInstance.js
import axios from "axios";
import { getToken } from "/src/utils/auth";
// 创建一个 Axios 实例
const API = axios.create({
  timeout: 60000, // 请求超时设置,单位ms
});
// 请求拦截器
API.interceptors.request.use(
  (config) => {
    // 动态设置 baseURL
    if (config.url.startsWith('/get')) {
      config.baseURL = '/get';
    } else {
      config.baseURL = '/api';
    }
    // 将 token 添加到请求头中
    config.headers["token"] = getToken();
    
    return config;
  },
  (error) => {
    // 请求错误处理
    console.log(error); // 调试
    return Promise.reject(error);
  }
);
export default API;使用:根据请求的 URL 自动选择不同的 baseURL
import API from './axiosInstance';
// 请求使用 baseURL 为 /get
API.get('/get/user/login').then(res => {
  console.log(res.data);
});
// 请求使用 baseURL 为 /api
API.get('/api/admin/login').then(res => {
  console.log(res.data);
});总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
