WebSocket握手期间出错:意外响应代码:403

368yc8dk  于 2023-01-02  发布在  其他
关注(0)|答案(2)|浏览(442)

我已经使用Spring Boot应用程序实现了WebSockets,并且在尝试使用chrome扩展"Smart websocket client"测试ws连接时出现以下错误消息。但是,在本地运行Spring Boot应用程序时没有问题。

WebSocket connection to 'ws://192.168.X.XYZ:8080/test' failed: 
Error during WebSocket handshake: Unexpected response code: 403

我看到的唯一区别是在请求标头中:
在一个它的作品-起源:http://192.168.X.XYZ:8080
在其中一个中,它不起作用-来源:chrome-扩展名://malebghpgejjiaoknljcfmglgbpocdp
我在WebSocketConfig类中所做的如下:

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(myHandler(), "/test").setAllowedOrigins("http://192.168.X.XYZ:8080");
}

但还是不起作用。
你能告诉我这个错误的原因是什么以及如何修复吗?
先谢谢你。

zbdgwd5y

zbdgwd5y1#

您需要将您的"chrome-extension://..."源配置为允许的源,甚至"*",否则它将被服务器拒绝。

zengzsys

zengzsys2#

更新到 Spring Boot 2.4时,还需要:

@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("*");
        }
    };
}

和配置类上的@EnableAutoConfiguration

相关问题