Я использую весенний загрузочный сервер (tomcat 9 на localhost: 8680) в качестве бэкенда для карточной игры с включенным CORS.Я хочу, чтобы все клиенты были в курсе, когда кто-нибудь делает пьесу.Я использовал socket.io для опроса ответа, получаемого от бэкэнда (на localhost: 4200)
Без опроса код работает нормально, и консоль браузера не выдает ошибку CORS.но когда я использую socket.io для опроса, он выдает ошибку
"Access to XMLHttpRequest at 'http://localhost:8680/socket.io/?EIO=3&transport=polling&t=MdzLHJ0' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
Spring Boot API
@CrossOrigin
@GetMapping(value = "/currentState", produces ={MediaType.APPLICATION_JSON_VALUE})
public ResponseDataModel currentState() {
return testObjects.dummyResponseModel();
}
Angular 7 компонент
ngOnInit() {
this.socket = io.connect('http://localhost:8680/cards/currentState');
this.socket.on('event',(data : any) =>{
this.refreshPage();
})
}
refreshPage(){
this.httpClient.get('http://localhost:8680/cards/currentState').subscribe((res : ResponseDataModel)=>{
this.responseDataModel = res;
});
}
, когда я неЯ использую socket.io Я получаю этот заголовок ответа при вызове 'http://localhost:8680/cards/currentState', и приложение просто отлично работает.
Access-Control-Allow-Origin: *
Content-Type: application/json;charset=UTF-8
Я что-то упустил в угловом компоненте?и почему socket.io пытается получить доступ
'http://localhost:8680/socket.io/?EIO=3&transport=polling&t=MdzLHJ0'