友友们我在使用Swagger调试的时候,为什么同样的网址(http://localhost:8080/doc.html#/home)火狐可以查看,edge不可以

友友们我在使用Swagger调试的时候,为什么同样的网址(http://localhost:8080/doc.html#/home)火狐可以查看,edge不可以

晚上好🌙🌙🌙
本答案参考通义千问
你遇到的问题是:在使用Swagger调试接口时,同样的网址(http://localhost:8080/doc.html#/home)在火狐浏览器可以正常访问,但在Edge浏览器中却失败。这个问题可能由多种原因引起,下面我将详细分析并提供解决方案。
CORS(跨域资源共享)限制
浏览器缓存问题
Swagger配置问题
HTTPS与HTTP混合内容问题
防火墙或安全软件拦截
Swagger UI版本兼容性问题
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:8080") // 允许的来源
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.exposedHeaders("Authorization");
}
}
注意: 确保Swagger UI所在的URL和后端API的URL一致,避免跨域。
确保你的Swagger配置没有错误,例如:
@Configuration
@EnableOpenApi
public class SwaggerConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("API文档").version("v1.0"));
}
}
建议使用最新版本的Swagger(如SpringDoc OpenAPI),它比传统的Swagger更加稳定和兼容性强。
https://localhost:8080/doc.html#/homeserver:
port: 8443
ssl:
key-store: classpath:keystore.jks
key-store-password: yourpassword
key-store-type: JKS
key-algorithm: RSA
key-alias: tomcat
如果你使用的是传统的Swagger(如springfox),强烈建议升级为SpringDoc OpenAPI,因为它更现代、兼容性更好,且无需额外配置CORS。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
http://localhost:8080/swagger-ui/index.html
| 问题原因 | 解决方案 | |----------|----------| | CORS限制 | 添加CORS配置,确保前后端一致 | | 缓存问题 | 清除Edge浏览器缓存 | | Swagger配置错误 | 检查Swagger配置,推荐使用SpringDoc | | HTTPS问题 | 使用HTTPS访问,确保协议一致 | | 安全软件拦截 | 暂时关闭防火墙或杀毒软件 | | 浏览器版本过旧 | 更新Edge浏览器至最新版本 |
如果你愿意,我可以根据你当前的代码提供具体的修改建议,请提供你的项目结构或相关配置代码。