跨域问题解决方案
什么是跨域?
**跨域:**指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是
浏览器对javascript施加的安全限制。
跨域问题产生的原因
同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;
跨域流程
- 预检请求,OPTIONS
- 响应允许跨域
- 发送真实请求
- 响应数据
跨域解决方案
使用nginx部署为同一域
配置请求允许跨域
配置跨域处理
@Configuration
public class GulimailCorsoConfig {
@Bean
public CorsWebFilter corsWebFilter(){
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 1.配置跨域
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.setAllowCredentials(true);
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsWebFilter(source);
}
}
return new CorsWebFilter(source);
}
}