栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot中使用Cors开启跨域

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot中使用Cors开启跨域

SpringBoot之Cors跨域
跨域主要是针对js和ajax的,使资源在【协议+主机名+端口号】不同的情况下也能相互访问

实现跨域有两种方式
1.JSONP 常见的前端跨域解决方案,但局限性大,只支持GET请求
2.Cors 支持多种请求,可完全替代JSON,是一种全局配置,需要实现WebMvcConfigurer接口

代码演示

//跨域处理 (全局配置)
@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**") //所有的请求都会被处理跨域
            .allowedOrigins("*")  //允许谁访问
            .allowedMethods("POST","GET","PUT","OPTIONS", "DELETE") //允许访问的方法
            .allowedHeaders("*") //允许请求头
            .maxAge(1800); //探测请求类型的有效期 默认是1800s
}
//也可在方法上用 @CrossOrigin(value = "http://localhost:8081")

WebMvcConfigurer接口下的其他方法

@Configuration
public class MvMvcConfig implements WebMvcConfigurer {

    //默认访问路径 index.html
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("").setViewName("index");
    }

    //配置静态资源,static路径下的资源访问不会被拦截
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        WebMvcConfigurer.super.addResourceHandlers(registry);
    }

    //注册拦截器,定义好拦截器需要通过这里添加注册才会生效
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //表示不会拦截的路径
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns(
                "/login",
                "/register",
                "/static/**");
        WebMvcConfigurer.super.addInterceptors(registry);
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号