ruoyi微服务如何解决开发环境下跨域问题

一开始的解决思路如下:
若依微服务如何解决跨域

发现都行不通,最后通过实现WebFilter接口且重写filter方法解决了此问题,代码如下:

@Component
public class CorsFilter implements WebFilter {
    private static final String MAX_AGE = "3600L";

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        ServerHttpRequest request = exchange.getRequest();
        if (!CorsUtils.isCorsRequest(request)){
            return  chain.filter(exchange);
        }

        ServerHttpResponse response = exchange.getResponse();
        HttpHeaders headers = response.getHeaders();
        headers.add("Access-Control-Allow-Origin","*");
        headers.add("Access-Control-Allow-Methods", "*");
        headers.add("Access-Control-Allow-Headers", "*");
        headers.add("Access-Control-Max-Age", MAX_AGE);
        if (request.getMethod() == org.springframework.http.HttpMethod.OPTIONS) {
            response.setStatusCode(org.springframework.http.HttpStatus.OK);
            return Mono.empty();
        }
        return chain.filter(exchange);
    }
}

和定义Webfilter的bean很像,但是不知道为什么定义bean始终无法解决跨域问题,也欢迎大家一起来讨论一下。在这里插入图片描述

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ruoyi微服务框架是一个基于Spring Cloud的开源框架,它提供了一些常用的微服务功能和组件。而WebSocket是一种在Web应用程序中实现双向通信的协议。 要在Ruoyi微服务框架中使用WebSocket,你可以按照以下步骤进行操作: 1. 在你的Ruoyi微服务项目中,添加Spring WebSocket依赖。可以在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 2. 创建一个WebSocket配置类,用于配置WebSocket相关的信息。可以创建一个类,例如WebSocketConfig.java,并使用`@Configuration`和`@EnableWebSocket`注解进行标记。 3. 在配置类中,创建一个`@Bean`方法,用于注册WebSocket处理器。例如: ``` @Bean public WebSocketHandler myHandler() { return new MyWebSocketHandler(); } ``` 其中,`MyWebSocketHandler`是自定义的WebSocket处理器类,用于处理WebSocket的连接、消息发送等操作。 4. 创建一个WebSocket处理器类,实现Spring的WebSocketHandler接口。在这个类中,你可以重写一些方法,例如`afterConnectionEstablished`用于处理连接建立时的逻辑,`handleTextMessage`用于处理接收到的文本消息等。 5. 在Ruoyi微服务框架的Controller中,可以注入WebSocketHandler,并在需要的地方调用相关方法来实现WebSocket的功能。例如,在某个请求处理方法中,可以通过WebSocketHandler来发送消息给客户端。 6. 在前端页面中,可以使用JavaScript来实现与WebSocket的连接和消息交互。具体的实现方式可以参考WebSocket的相关API。 这样,你就可以在Ruoyi微服务框架中使用WebSocket来实现双向通信了。希望能对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值