springcloud-gateway配置跨域
跨域有两种解决方式:
一是将前端和后端通过nginx部署在同一域名下,后端通过location /admin 这种方式转发,避免浏览器因为协议,主机和端口号不同造成的跨域
二是非简单请求,浏览器一般会先发起option预检请求,然后再发起真正的请求,预检请求中服务器响应返回的header会告诉客户端是否允许跨域。
本文是第二种,设置响应头告诉客户端浏览器允许跨域。
1,gateway项目新建config包,创建mallCorsConfiguration配置类
@Configuration
public class MallCorsConfiguration {
@Bean
public CorsWebFilter corsWebFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.setAllowCredentials(true);
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsWebFilter(source);
}
}
2, 当系统中前台项目请求网关的时候,将不会出现跨域问题。网关转发的微服务本身不需要再配置跨域处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了