新项目主应用使用umi4,子应用使用umi max开发环境中,主应用访问子应用会跨域希望可以支持devServer,设置headers:{'Access-Control-Allow-Origin':'*'},允许主应用跨域访问子应用
umi4.x继续支持umi3.x中的devServer配置
vdgimpew1#
用 proxy 选项:
proxy
https://umijs.org/docs/guides/proxy
或者在插件里(比如 项目级插件)调用 onBeforeMiddleware ,可以拿到 express 的 app ,之后想怎么弄怎么弄:
onBeforeMiddleware
import { IApi } from 'umi' export default (api: IApi) => { api.onBeforeMiddleware(({ app }) => { console.log('app: ', app) }) }
jfewjypa2#
我理解proxy是配置接口跨域的目前是想在主应用访问子应用首页时,配置子应用允许主应用跨域访问
插件的形式希望大佬多给些提示,我应该是没get到关键点,谢谢!
mklgxw1f3#
我理解现在支持跨域的 https://github.com/umijs/umi/blob/master/packages/bundler-webpack/src/server/server.ts#L38
自定义的话 可以 app.use 一个中间件达成自定义需求
app.use
import { IApi } from 'umi' export default (api: IApi) => { api.onBeforeMiddleware(({ app }) => { app.use(helloMiddleware) }) }
bmp9r5qi4#
我也遇到了相同的问题,其他开发者启动项目并不支持跨域,目前正在定位问题。猜测可能是由于操作系统或umi版本导致的,我本地是OS X umi@4.0.34,出现问题的大多是Windows。
4条答案
按热度按时间vdgimpew1#
用
proxy
选项:https://umijs.org/docs/guides/proxy
或者在插件里(比如 项目级插件)调用
onBeforeMiddleware
,可以拿到 express 的 app ,之后想怎么弄怎么弄:jfewjypa2#
我理解proxy是配置接口跨域的
目前是想在主应用访问子应用首页时,配置子应用允许主应用跨域访问
插件的形式希望大佬多给些提示,我应该是没get到关键点,谢谢!
mklgxw1f3#
我理解现在支持跨域的 https://github.com/umijs/umi/blob/master/packages/bundler-webpack/src/server/server.ts#L38
自定义的话 可以
app.use
一个中间件达成自定义需求bmp9r5qi4#
我也遇到了相同的问题,其他开发者启动项目并不支持跨域,目前正在定位问题。
猜测可能是由于操作系统或umi版本导致的,我本地是OS X umi@4.0.34,出现问题的大多是Windows。