跨域问题(....as been blocked by CORS policy)
前端报错信息
跨越报错的原因
跨越流程
跨域会发送2次请求,
- 是预检请求, (OPTIONS 方式发送)
- 是发送真实请求
跨越解决
方式一:
方式二:
代码示例:
本人是给网关添加一个过滤器,解决所有的跨域问题(也可以给具体某个服务添加跨域)
@Configuration
public class CorsConfig {
// Spring 为我们提供了一个CorsFiler 我们只需要把他放到容器来即可
@Bean
public CorsWebFilter corsWebFilter() {
// 跨域的配置信息 springframework.web.cors.reactive 包下的
UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 支持哪些来源的请求
corsConfiguration.addAllowedOrigin("*");
// 支持的请求头
corsConfiguration.addAllowedHeader("*");
// 支持哪些请求方式
corsConfiguration.addAllowedMethod("*");
// 是否允许携带 cookie
corsConfiguration.setAllowCredentials(true);
// 注册跨域的配置信息,任意路径下
corsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
return new CorsWebFilter(corsConfigurationSource);
}
}
注意:服务端或者网关只能有其中一个配置跨域配置,否则会报错:
还没有评论,来说两句吧...