WebSocket 握手期间出错:意外的响应代码:403
Error during WebSocket handshake: Unexpected response code: 403
我已经使用 Spring 引导应用程序 实现了 WebSockets 并且在尝试测试 ws 连接时出现以下错误消息使用 chrome 扩展 'Smart websocket client'。
但是,当 运行 Spring 在本地引导应用程序时,我没有问题。
WebSocket connection to 'ws://192.168.X.XYZ:8080/test' failed:
Error during WebSocket handshake: Unexpected response code: 403
我看到的唯一区别是请求 headers:
在有效的那一个 - 来源:http://192.168.X.XYZ:8080
其中一个不起作用 - Origin:chrome-extension://omalebghpgejjiaoknljcfmglgbpocdp
我在 WebSocketConfig class 中所做的如下:
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/test").setAllowedOrigins("http://192.168.X.XYZ:8080");
}
并且仍然不工作。
能否请您告知该错误可能是什么原因以及如何解决?
提前致谢。
您需要将您的 "chrome-extension://..."
来源配置为允许的来源甚至 "*"
,否则它会被服务器拒绝。
更新到 spring boot 2.4 时,还需要:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}
和 @EnableAutoConfiguration
配置 class.
我已经使用 Spring 引导应用程序 实现了 WebSockets 并且在尝试测试 ws 连接时出现以下错误消息使用 chrome 扩展 'Smart websocket client'。 但是,当 运行 Spring 在本地引导应用程序时,我没有问题。
WebSocket connection to 'ws://192.168.X.XYZ:8080/test' failed:
Error during WebSocket handshake: Unexpected response code: 403
我看到的唯一区别是请求 headers:
在有效的那一个 - 来源:http://192.168.X.XYZ:8080
其中一个不起作用 - Origin:chrome-extension://omalebghpgejjiaoknljcfmglgbpocdp
我在 WebSocketConfig class 中所做的如下:
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(myHandler(), "/test").setAllowedOrigins("http://192.168.X.XYZ:8080");
}
并且仍然不工作。
能否请您告知该错误可能是什么原因以及如何解决?
提前致谢。
您需要将您的 "chrome-extension://..."
来源配置为允许的来源甚至 "*"
,否则它会被服务器拒绝。
更新到 spring boot 2.4 时,还需要:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
};
}
和 @EnableAutoConfiguration
配置 class.