什么是跨域问题:
跨域: 指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
同源策略: 是指协议,域名,端口都要相同,其中有一个不同都会产生跨域;
一、配置当次请求允许跨域
通过添加响应头解决
Access-Control-Allow-Origin:支持哪些来源的请求跨域。
Access-Control-Allow-Methods:支持哪些方法跨域。
Access-Control-Allow-Credentials:跨域请求默认不包含cookie,设置为true可以包含cookie。
Access-Control-Expose-Headers:跨域请求暴露的字段。
二、网关统一配置允许跨域
1.加入代码到gateway网关的config文件夹中
代码如下:
@Configuration
public class GulimallCorsConfiguration {
/**
* author:yanpu
* 功能描述:网关统一配置允许跨域
* @return CorsWebFilter 跨域配置过滤器
*/
@Bean
public CorsWebFilter corsWebFilter(){
// 跨域配置源
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// 跨域配置
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 1 配置跨域
// 允许所有头进行跨域
corsConfiguration.addAllowedHeader("*");
// 允许所有请求方式进行跨域
corsConfiguration.addAllowedMethod("*");
// 允许所有请求来源进行跨域
corsConfiguration.addAllowedOrigin("*");
// 允许携带cookie进行跨域
corsConfiguration.setAllowCredentials(true);
// 2 任意路径都允许第1步配置的跨域
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsWebFilter(source);
}
}
总结
以上就是今天要讲的内容,本文仅仅简单介绍了后端对跨域的使用