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设置跨域
780 0
|
26天前
|
前端开发 JavaScript API
网页自动提交Form表单的方法
在数字化时代,自动化任务如网页自动提交Form表单,能大幅提升效率。这涉及自动填写注册信息等场景。本文概述了多种实现方式:JavaScript可直接在前端自动填充并提交;Python结合Selenium模拟真实用户操作;AOKSend作为API工具发送表单数据;第三方工具如iMacros、AutoHotkey和Zapier提供非编程自动化选项。根据需求选择合适方法,可显著提升工作效能,减少重复性劳动。
|
3月前
|
安全 Nacos 开发者
Nacos报错问题之get请求路径带中文参数报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
|
存储 容器
shiro配置路径为anno,但请求还是拦截下来了
shiro配置路径为anno,但请求还是拦截下来了
349 2
|
XML 缓存 前端开发
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
从 CORS 到 Spring MVC 跨源资源共享(CORS) 即 Cross-Origin Resource Sharing,也常被译为跨域资源共享。作为 W3C 的标准,它允许浏览器向跨源服务器发起请求,克服了 AJAX 只能同源使用的限制。
449 0
别用 Filter 了,试试 Spring 自带的方式处理 CORS 跨域问题
|
11月前
|
安全 Java Spring
使用过滤器跨域问题
使用过滤器跨域问题
97 0
|
Java
Springboot配置全局跨域未生效,接口访问报错解决方法
Springboot配置全局跨域未生效,接口访问报错解决方法
1219 0
|
JSON 前端开发 数据格式
SpringMvc配置静态资源放行和乱码问题处理
SpringMvc配置静态资源放行和乱码问题处理
219 0
|
Java 应用服务中间件 程序员
struts2.2.3 配置中文乱码拦截过滤器 解决接收中文参数乱码问题
java 编程中得中文乱码问题,一直都是个困扰程序员的问题。
183 0