Spring boot 如何改变<;主机:端口>;昂首阔步

Spring boot 如何改变<;主机:端口>;昂首阔步,spring-boot,swagger,swagger-ui,swagger-2.0,Spring Boot,Swagger,Swagger Ui,Swagger 2.0,在图片中,swagger请求使用主机和端口,因此无法加载浏览器控制台XMLHttpRequesthttp://115.159.22.159:9001/bp/api/v1/user/1. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://twogoods.cc因此,不允许访问。 如何解决 @Bean public Docket categoryApi() { return new Docket(DocumentationType.SWAG

在图片中,swagger请求使用主机和端口,因此无法加载浏览器控制台
XMLHttpRequesthttp://115.159.22.159:9001/bp/api/v1/user/1. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://twogoods.cc因此,不允许访问。
如何解决

@Bean
public Docket categoryApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .host("twogoods.cc")
            .groupName("bookplatform-api")
            .apiInfo(apiInfo())
            .select()
            .paths(apiPaths())
            .build()
            .directModelSubstitute(java.sql.Timestamp.class, java.sql.Date.class)
            .enableUrlTemplating(false);
}
host()
method

您可以使用和方法覆盖默认值

例如
@Bean
公共摘要定制实现(){
返回新摘要(DocumentationType.SWAGGER_2)
.protocols(Collections.singleton(“https”))
.host(“twogoods.cc”)
.选择()
.build();
}

现在我知道host()方法可以更改“试用”URL,但我还有一个问题:如何自动获取主机(如HttpServletRequest.getServerName())不是手动输入?我也不期待从配置中找到一个特定的主机。你知道它是否可以动态完成吗,比如根据实际的域名选择主机名,这样在部署到不同的环境时就不需要做任何更改?@Joey 587-不确定,但你可能有三个选择(为了可行性,*未测试):a)使用环境变量从外部配置域名(启动时)。b)惰性初始化
Docket
bean,并使用收到的第一个头来配置bean c)获取外部IP地址并进行反向查找(这里是dragons)