vue 前端设置跨域多代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 前端设置跨域多代理相关的知识,希望对你有一定的参考价值。

参考技术A 在项目开发的时候经常会遇到后端提供的多个服务请求地址域名或端口号不一致的情况这时候就需要前端设置多个proxy跨域代理,本文以vue-element-admin为例展示步骤如下:
1: 配置环境变量 .env.development

2: 配置项目根目录下的vue.config.js 找到devServer

PS:注意VUE_APP_BASE_API 放在数组的最后一个,如果你VUE_APP_BASE_API跟我一样设置为'' 的话,这样才不会被代理的虚拟path覆盖!

3: 找到项目中管理请求地址的文件 src/api/proxy.js (proxy.js 是我随便起的名字😄)

打开proxy.js

proxy_api 就是你之前在步骤1:中定义的虚拟path
VUE_APP_BASE_API_PROXY = '/proxy-api'
const url = (path) => (proxy_api + path) 一个路径处理函数,参数是'/xx/xxx/fetch/list',return (proxy_api + path)

需要额外注意的是我在配置环境变量 .env.development的时候基础api设置的是空:

所以不需要在src/utils/request.js 中对代理的请求进行拦截

如果你为VUE_APP_BASE_API设置了虚拟path路径,那么就需要在src/utils/request.js为这个虚拟路径配置拦截,比较麻烦比不建议这么做。

至此跨域多代理已经设置完了,本文中设置两个代理一个基础代理VUE_APP_BASE_API,一个额外代理VUE_APP_BASE_API_PROXY,默认情况下走基础代理,当请求匹配到匹'/proxy-api' 时走额外代理~

以上是关于vue 前端设置跨域多代理的主要内容,如果未能解决你的问题,请参考以下文章

如何解决前端跨域问题?

vue--代理方式跨域

Vue配置代理 解决跨域

Vue代理&跨域

vue-webpack项目本地开发环境设置代理解决跨域问题

vue 设置proxyTable解决跨域问题