Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

354
Views
Tengo un error CORS en socket.io (Node.js) cuando quiero conectarme a eso

Tengo un servicio socket.io al que diferentes dispositivos quieren conectarse y, por eso, es muy importante para mí que mi servicio socket.io permita todos los orígenes (incluso cuando un cliente no establece ningún origen en el encabezado) para conectarse a eso, este es mi io (lado del servidor):

 const server = http.createServer(app); // app is express app const io = require('socket.io')(server,{ allowEIO3: true, cors: { origin: '*', credentials: true }, });

y este es mi cliente:

 const socket = io('http://localhost:4855/', { timeout: 60 * 1000, reconnection: true, forceNew: true, query: { authorization: `Bearer ${token}` }, // extraHeaders: { // Authorization: "ksi", // "Access-Control-Allow-Origin": "*", // "Access-Control-Allow-Credentials": true // }, // Headers: { // "Access-Control-Allow-Origin": 'http://localhost', // }, // headers: { // "Access-Control-Allow-Origin": "*", // "Access-Control-Allow-Credentials": true // } }); socket.connect();

MENSAJE DE ERROR: desde el origen 'http://localhost' ha sido bloqueado por la política CORS: el valor del encabezado 'Access-Control-Allow-Origin' en la respuesta no debe ser el comodín '*' cuando el modo de credenciales de la solicitud es 'incluir'. El modo de credenciales de las solicitudes iniciadas por XMLHttpRequest está controlado por el atributo withCredentials.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El error es bastante claro.

El valor del encabezado 'Access-Control-Allow-Origin' en la respuesta no debe ser el comodín '*' cuando el modo de credenciales de la solicitud es 'incluir'.

Y tú dijiste:

 origin: '*',

Por lo tanto, debe devolver el origen real y no el comodín.

La documentación dice:

Todas las opciones se reenviarán al paquete cors. La lista completa de opciones se puede encontrar aquí.

Que a su vez dice :

origin: Configura el encabezado CORS Access-Control-Allow-Origin. Valores posibles:

  • Booleano: configure el origen en verdadero para reflejar el origen de la solicitud, según lo define req.header('Origin'), o configúrelo en falso para deshabilitar CORS.
  • Cadena: establezca el origen en un origen específico. Por ejemplo, si lo configura en "http://example.com", solo se permitirán las solicitudes de "http://example.com".
  • RegExp: establezca el origen en un patrón de expresión regular que se utilizará para probar el origen de la solicitud. Si es una coincidencia, se reflejará el origen de la solicitud. Por ejemplo, el patrón /example.com$/ reflejará cualquier solicitud que provenga de un origen que termine en "example.com".
  • Matriz: establezca el origen en una matriz de orígenes válidos. Cada origen puede ser una cadena o una expresión regular. Por ejemplo, ["http://example1.com", /.example2.com$/] aceptará cualquier solicitud de "http://example1.com" o de un subdominio de "example2.com".
  • Función: establezca el origen en una función que implemente alguna lógica personalizada. La función toma el origen de la solicitud como el primer parámetro y una devolución de llamada (llamada devolución de llamada (err, origen), donde el origen es un valor que no es función de la opción de origen) como el segundo.

Como desea permitir cualquier origen , no puede usar una cadena o una matriz.

Las otras opciones funcionarían todas, pero la más simple es la booleana.

 cors: { origin: true, credentials: true },
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!