vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue3配置多级代理

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);
});

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文