目前调试,为了避免跨域,是用了代理的方式,如:指定 /abc 前缀,没有 /abc 开头的都是访问前端 4200 端口的路由,有 /abc 前缀的的就代理到后端 8080 端口去
例如
- localhost:4200/abc/** ====> localhost:8080/**
- localhost:4200/abc/user/2 ====> localhost:8080/user/2
现在的几个问题
- 项目集成了 SpringSecurity 做授权管理。其中有一个点:请求者没有通过认证或者过期的话,就会将请求强制跳转到指定的映射去(即重定向无法避免)
- 然而后台重定向返回的链接是 /login 而没有 /abc 前缀,导致前端实际访问的是 localhost:4200/login,(它没有代理访问,而是从本地路由去找了)从而引发 404
- 但如果 后台重定向返回的链接强行加个 /abc 前缀,确实能访问到 localhost:8080/login 了,但是此时它的 controller 映射却变成 /abc/login 了,从而也匹配不上
所以想请问大家是怎么做的,或者有更好的方法来处理。