程序笔记   发布时间:2022-07-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了配置跨域后发现swagger2不能访问问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

配置跨域后发现swagger2不能访问问题

原因分析:可能是swagger2的内置接口和静态资源拦截了

原springboot的全局跨域配置如下

/**
* 解决跨域问题
*/
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsmappings(CorsRegistry registry) {
        //设置允许跨域的路劲
        registry.addMapping("/**")
                //设置允许跨域请求的域名
//              .allowedOrigins("*")
                .allowedOriginPatterns("*")
                //设置允许的方法
                .allowedMethods("*")
               //允许的请求头
                .allowedHeaders("*")
                //跨域允许时间
                .maxAge(3600)
                 //是否允许证书 不在默认开启
                .allowCredentials(true);
    }
}

配置跨域后发现swagger2不能继续访问,需要在上面的类中添加如下代码:

 /**
     * 跨域配置后swagger2可能不能访问,需要增加如下配置
     * @param registry
     * 对静态资源的配置
     */
    @Override
    public void addresourceHandlers(resourceHandlerRegistry registry) {
        registry.addresourceHandler("swagger-ui.html")
                .addresourceLOCATIOns("classpath:/META-INF/resources/");
        registry.addresourceHandler("doc.html")
                .addresourceLOCATIOns("classpath:/META-INF/resources/");
        registry.addresourceHandler("/webjars/**")
                .addresourceLOCATIOns("classpath:/META-INF/resources/webjars/");
    }

总配置类代码如下:

/**
* 解决跨域问题
*/
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsmappings(CorsRegistry registry) {
        //设置允许跨域的路劲
        registry.addMapping("/**")
                //设置允许跨域请求的域名
//              .allowedOrigins("*")
                .allowedOriginPatterns("*")
                //设置允许的方法
                .allowedMethods("*")
               //允许的请求头
                .allowedHeaders("*")
                //跨域允许时间
                .maxAge(3600)
                 //是否允许证书 不在默认开启
                .allowCredentials(true);
    }
    
     /**
     * 跨域配置后swagger2可能不能访问,需要增加如下配置
     * @param registry
     * 对静态资源的配置
     */
    @Override
    public void addresourceHandlers(resourceHandlerRegistry registry) {
        registry.addresourceHandler("swagger-ui.html")
                .addresourceLOCATIOns("classpath:/META-INF/resources/");
        registry.addresourceHandler("doc.html")
                .addresourceLOCATIOns("classpath:/META-INF/resources/");
        registry.addresourceHandler("/webjars/**")
                .addresourceLOCATIOns("classpath:/META-INF/resources/webjars/");
    }
}

大佬总结

以上是大佬教程为你收集整理的配置跨域后发现swagger2不能访问问题全部内容,希望文章能够帮你解决配置跨域后发现swagger2不能访问问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。