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);
});总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
