1.什么是跨域
跨域问题通常是由于浏览器的同源策略(Same-Origin Policy)限制引起的,它阻止了Web客户端(如浏览器)从不同源(域、协议或端口)加载资源。解决跨域问题通常需要在服务器端进行配置,因为服务器端可以添加必要的CORS(跨域资源共享)头部到响应中,允许或拒绝特定的跨域请求。
2.解决跨域
@Configuration
public class WebConfig implements WebMvcConfigurer {
private static final String[] ALLOWED_METHODS = {"GET", "POST", "PUT", "DELETE"};
private static final String[] ALLOWED_ORIGINS = {"*"};
/**
* 单机可以使用,微服务情况下,不建议直接通过当前服务的端口直接进行调用,需要通过网关发放请求
*
* @param registry cors
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //指定允许跨域请求的路径模式为"/**",表示所有的路径都将允许跨域访问。
.allowedOrigins(ALLOWED_ORIGINS) // 允许访问资源的域名
.allowedMethods(ALLOWED_METHODS) // 允许的HTTP方法
.allowedHeaders("*") // 允许的请求头
.allowCredentials(false) // 是否允许发送凭证信息
.maxAge(3600); // 预检请求的有效期
}
}