SpringCloudGateWay中跨域配置不起作用

简介: 问题描述SpringCloudGateWay中跨域配置不起作用

问题描述


SpringCloudGateWay中跨域配置不起作用


使用filter

@Component
public class CORSFilter implements Filter{
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse) response;
        res.addHeader("Access-Control-Allow-Credentials", "true");
        res.addHeader("Access-Control-Allow-Origin", "*");
        res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
        res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN");
        if (((HttpServletRequest) request).getMethod().equals(HttpMethod.OPTIONS)) {
            response.getWriter().println("ok");
            return;
        }
        chain.doFilter(request, response);
    }
}

ae01806a37394262a117ec1b246f296e.pnga4d42800f2b8416286d4b4f38ad859fd.png


使用注解

6af365307f334bf1bbd20f80b70b9e05.png70b74efeca0f4a7ca5b671b0c35da281.png


自定义filter

@Configuration
public class CORSFilter{
    @Bean
    public CorsFilter corsFilter(){
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addExposedHeader("*");
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        corsConfigurationSource.registerCorsConfiguration("/**",corsConfiguration);
        //3. 返回新的CorsFilter
        return new CorsFilter(corsConfigurationSource);
    }
}

3622d3ea93194ad18f14fdffe47dfff2.png


原因分析:


SpringCloudGetway是Springwebflux的而不是SpringWebMvc的,所以我们需要导入的包导入错了


693dd5f336754727b300644b1eb22fa3.png9244a84fbaef4e6ca86b4f6c3973b05d.png


解决方案:


正确导包

相关文章
|
6月前
|
JavaScript 前端开发 安全
nodejs 跨域设置
nodejs 跨域设置
46 0
fastadmin设置跨域
fastadmin设置跨域
670 0
|
应用服务中间件 Nacos nginx
跨域配置
跨域配置
418 0
跨域配置
|
3天前
谷歌浏览器跨域设置都是127.0.0.1出现跨域
谷歌浏览器跨域设置都是127.0.0.1出现跨域
46 0
|
3天前
|
存储 安全 API
同源策略:概念、作用、跨域问题及解决办法
同源策略(Same Origin Policy,SOP)是一种重要的网络安全机制**,是由Netscape公司在1995年引入浏览器的一种安全功能,它要求网页在执行某些操作时,如使用XMLHttpRequest或Fetch API进行网络请求,或者尝试访问cookies、LocalStorage、IndexedDB等资源时,必须遵循“同源”原则。
|
Web App开发 安全 应用服务中间件
|
6月前
|
移动开发 JSON 数据格式
解决跨域的方法
解决跨域的方法
27 0
|
8月前
关闭浏览器的跨域校验
关闭浏览器的跨域校验
|
10月前
|
移动开发 JavaScript 前端开发
解决跨域的九种方法
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
318 0
解决跨域的九种方法
|
10月前
|
JSON 缓存 安全
SpringBoot 配置CORS处理前后端分离跨域配置无效问题解析
SpringBoot 配置CORS处理前后端分离跨域配置无效问题解析