关于跨域这些基础的配置很久没接触过了,刚一上手还给我上了一课。
跨域的配置有两种形式:一种是基于yml的配置,另一种是基于Java代码的配置
- 基于Yml的配置
spring:
application:
name: sc-gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
username: nacos
password: nacos
contextPath: /nacos
server-addr: 127.0.0.1:8848
group: DEFAULT_GROUP
namespace: public
gateway:
#开启网关,默认开启
discovery:
locator:
enabled: true
lower-case-service-id: true
# 开始跨域配置
globalcors:
cors-configurations:
'[/**]':
allowedOrigins: "*"
allowedHeaders: "*"
allowedMethods:
- GET
- OPTION
- POST
- DELETE
- PUT
- 基于Java代码的配置
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((CorsConfigurationSource) source);
}
}
虽说这两种配置选其一都可以达到目的,要是不行就都加上