如何修复 Swagger UI 中的混合内容错误?

问题描述 投票:0回答:1

最近我从 SpringFox 2 迁移到 Springdoc + OpenAPI 3。它更快一点,并且在我的本地环境中完美运行。

当我尝试在生产环境中使用它时,Swagger UI 页面可以正常打开。问题是当我点击 API 端点时,Swagger UI 显示此错误消息:

浏览器控制台的错误是:

混合内容:“https:///swagger-ui/index.html#/Ravel/getLabelFormats”页面是通过 HTTPS 加载的,但请求了不安全的资源“http:///labels?language=10&includeData=”错误的'。该请求已被阻止;内容必须通过 HTTPS 提供。

我在 Spring Boot 项目中启用了 CORS:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
            .addResourceLocations("classpath:/META-INF/resources/");

    registry.addResourceHandler("/webjars/**")
            .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**").allowedOrigins("*");
}

这是我的 Pom 文件:

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.6.9</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations -->
    <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>2.2.8</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-models -->
    <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-models</artifactId>
        <version>2.2.8</version>
    </dependency>

    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>4.1.79.Final</version>
    </dependency>

我的

application.yml
文件配置:

springdoc:
  swagger-ui:
    enabled: true
    disable-swagger-default-url: true
  api-docs:
    path: /v3/api-docs

Java 8
春季启动 2.7.8

我不知道我忘记了什么配置。有人可以给我指路吗?

java spring-boot swagger-ui springdoc mixed-content
1个回答
0
投票

尝试使用“http”而不是“https”。

© www.soinside.com 2019 - 2024. All rights reserved.