Я реализую веб-сокеты для приложения Spring с sock.js
+ stomp.js
в клиентском приложении. При попытке подключения я получаю сообщение об ошибке:
Access to XMLHttpRequest at 'http://localhost:8080/ws/tracker/info?t=...' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
И в моих WebsocketConfiguration
:
@Configuration
@EnableWebSocketMessageBroker
@Order(Ordered.HIGHEST_PRECEDENCE + 99)
public class WebsocketConfiguration implements WebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws")
.setAllowedOrigins("*")
.withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic/", "/queue/");
registry.setApplicationDestinationPrefixes("/app");
}
}
Клиентские библиотеки:
<script src="https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.4.0/sockjs.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/stomp.js/2.3.3/stomp.js"></script>
Клиентское подключение:
var socket = new SockJS('http://localhost:8080/websocket/tracker');
Я уже реализовал веб-сокеты в одном из более ранних проектов, поэтому все это скопировано из него, хотя я не могу вспомнить (и не найти), как решить эту ошибку.