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


解决方案:


正确导包

相关文章
fastadmin设置跨域
fastadmin设置跨域
854 0
|
应用服务中间件 Nacos nginx
跨域配置
跨域配置
490 0
跨域配置
|
5月前
|
前端开发
CROS跨域配置异常
这是一个CORS跨域问题案例,前端(localhost:8080)尝试访问后端(localhost:9999)被阻止。后端已配置CORS过滤器,但`addAllowedOrigin`错误地设为`http://localhost:9999`。正确配置应为`http://localhost:8080`以允许前端请求。
69 1
|
1月前
|
开发框架 中间件 Java
如何处理跨域资源共享(CORS)的 OPTIONS 请求?
处理 CORS 的 OPTIONS 请求的关键是正确设置响应头,以告知浏览器是否允许跨域请求以及允许的具体条件。根据所使用的服务器端技术和框架,可以选择相应的方法来实现对 OPTIONS 请求的处理,从而确保跨域资源共享的正常进行。
|
7月前
谷歌浏览器跨域设置都是127.0.0.1出现跨域
谷歌浏览器跨域设置都是127.0.0.1出现跨域
284 0
|
移动开发 JSON 数据格式
解决跨域的方法
解决跨域的方法
67 0
|
Web App开发 前端开发 Java
解决新版chrome跨域问题:cookie丢失以及samesite属性问题
解决新版chrome跨域问题:cookie丢失以及samesite属性问题
1513 0
解决新版chrome跨域问题:cookie丢失以及samesite属性问题
|
JavaScript 前端开发 中间件
解决跨域的九种方法
跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
564 0
解决跨域的九种方法