Estoy creando un sitio web para un proyecto escolar donde hay una tabla de actualización en vivo con datos sobre cuántas rondas ha corrido el jugador. Ya casi está hecho, pero recibo un error que no puedo resolver:
ccess to XMLHttpRequest at 'https://creeperhd.de:8443/socket.io/?EIO=4&transport=polling&t=O88eQ0_' from origin 'https://creeperhd.de' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.Ya tengo esto en mi código de servidor para evitar este error:
const io = require('socket.io')(http,{cors:{origin:"*"}});Pero de todos modos me sale el mismo error...
¿Alguien puede decir qué puedo hacer?
Deberá hacer una de dos cosas para habilitar el soporte de CORS o evitar las restricciones de CORS.
Opción #1: cambie el lado del cliente para omitir el sondeo http de socket.io cambiando el código de conexión del lado del cliente para agregar una opción como esta:
const socket = io("https://example.com", { transports: ["websocket"] // use webSocket only });Es el sondeo http inicial de socket.io el que falla en las restricciones de COR. Si omite eso y va directamente a una conexión webSocket, entonces las conexiones webSocket no están limitadas por COR, por lo que no tendrá problemas de acceso a COR.
Opción #2: instale el paquete CORS en su servidor http y configúrelo adecuadamente para habilitar el acceso CORS para su terminal socket.io. La página de COR está aquí . El documento socket.io para habilitar el acceso CORS está aquí .
Las opciones de cors que se muestran para socket.io dependen del paquete CORS que esté instalado en su servidor web. Por lo tanto, debe usar ambos juntos o implementar su propio manejo personalizado de COR para habilitar completamente el acceso a los COR.