当前位置: 代码迷 >> 综合 >> Spring Cloud微服务解决前端跨域问题
  详细解决方案

Spring Cloud微服务解决前端跨域问题

热度:52   发布时间:2024-02-02 15:44:18.0

解决方案:增加 WebMvcConfig配置 

代码如下


import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.util.List;import static org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type.SERVLET;@Configuration
@ConditionalOnWebApplication(type = SERVLET)
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("*").allowedHeaders("*");}

第二种方法是直接在自己的服务模块的主启动类中配置 CorsFilter过滤器

import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;import java.util.ArrayList;
import java.util.List;private CorsConfiguration addcorsConfig() {CorsConfiguration corsConfiguration = new CorsConfiguration();List<String> list = new ArrayList<>();list.add("*");corsConfiguration.setAllowedOrigins(list);/*// 请求常用的三种配置,*代表允许所有,当时你也可以自定义属性(比如header只能带什么,只能是post方式等等)*/corsConfiguration.addAllowedOrigin("*");corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.setAllowCredentials(true);return corsConfiguration;}@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", addcorsConfig());return new CorsFilter(source);}

 

  相关解决方案