SpringCloud项目跨域配置

在SpringCloud项目中,前后端分离目前很常见,在调试时会遇到前端页面通过不同域名或IP访问微服务的后台。

例如前端人员会在本地起HttpServer 直连后台开发本地起的服务,此时,如果不加任何配置,前端页面的请求会被浏览器跨域限制拦截,所以,业务服务常常会添加跨域配置。

一、全局跨域配置:

springboot项目可在全局项目配置中添加如下配置:

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
@Slf4j
public class MyProjectConfig {

    @Bean
    public CorsFilter corsFilter() {
        log.debug("CORS限制打开");
        CorsConfiguration config = new CorsConfiguration();
        //仅在开发环境设置为*
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        config.setAllowCredentials(true);
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        return new CorsFilter(configSource);
    }
}

 

二、局部跨域配置:

在Controller类或者方法上添加 @CrossOrigin 注解即可。

posted @ 2022-03-04 12:57  gaopengpy  阅读(576)  评论(0编辑  收藏  举报