在开发中遇到个问题,服务器是 谷歌云 的,接口部署在服务器上后,通过 postman 能够调通,但是前端请求,一直报跨域问题,一般只要接口能通基本都不会再管,奇怪的是,安卓请求,同样也是请求不通,好吧,只能去看是不是需要后端配置什么东西。
由于接口请求都是先走 gateway ,再由网关分发出去,这里直接在网关里面处理跨域问题,直接上代码
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;
/**
* @author hqk
* @version 1.0
* @date 2019/8/25 0025 10:27
* @Description: 解决跨域问题
*/
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
// 设置你要允许的网站域名,如果全允许则设为 *
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
经过测试,可以解决请求跨域问题