我已经使用Swagger API文档配置了Spring Boot应用程序并配置了Swagger UI .

我还在反向代理后面运行我的后端应用程序,该代理将来自 host:port/api 的所有请求映射到 backend_host:port/ ,当在localhost上运行时我映射 localhost:8082/api . 在 生产环境 中,应用类似的映射 .

当我从 localhost:8082/api/swagger-ui.html 打开Swagger UI时,它会在 Headers 下方显示以下行:

[基本URL:localhost:8080] http:// localhost:8082 / api / v2 / api-docs

当我调用任何休息操作时,swagger总是尝试对localhost:8080执行它,然后由于相同的源策略而失败 .

我知道使用 pathProvider 但它只影响基本URL的路径部分,而不是域和端口 . 所以我只能使用它将基本URL更改为localhost:8080 / api但是我需要它更改为localhost:8082 / api . 有没有办法将主机动态设置为浏览器中活动的当前主机和端口?

.pathProvider (new RelativePathProvider (servletContext) {
                @Override
                public String getApplicationBasePath() {
                    return "/api";
                }
               })