es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿CORS funcionaba correctamente pero dejó de funcionar de repente?

Esto es lo que tengo en Node:

app.use(function (req, res, next) {

// Sitio web al que deseas permitir la conexión
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:4200/');

// Métodos de solicitud que deseas permitir
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

// Cabeceras de solicitud que deseas permitir
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');

// Establece en true si necesitas que el sitio web incluya cookies en las solicitudes enviadas
// a la API (por ejemplo, en caso de que uses sesiones)
res.setHeader('Access-Control-Allow-Credentials', true);

// Pasa al siguiente middleware
next();

});

Mi front-end está en Angular. Todo funcionaba muy bien, pero de repente comencé a recibir errores de CORS. Cuando reviso la consola, obtengo esto:

Imagen de error

El Contexto del Iniciador y el Origen Permitido son exactamente los mismos. Y, como mencioné antes, no tenía ningún problema hasta que de repente dejó de funcionar. Así que no entiendo qué está pasando aquí. Cualquier ayuda será apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Parece que tu backend de node.js está restringiendo a tu frontend de Angular de realizar solicitudes de origen cruzado. Esto puede resolverse modificando las cabeceras CORS en tu aplicación de node.js.

    Asegúrate de que las cabeceras CORS en tu aplicación de node.js permitan el origen del frontend de Angular, que en este caso es `http://localhost:4200/`. Puedes modificar las cabeceras de la siguiente manera:

    app.use(function (req, res, next) {
    
        // Permitir todos los orígenes
        res.setHeader('Access-Control-Allow-Origin', '*');
    
        // Métodos de solicitud que deseas permitir
        res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    
        // Cabeceras de solicitud que deseas permitir
        res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    
        // Establecer en true si necesitas que el sitio web incluya cookies en las solicitudes enviadas
        // a la API (por ejemplo, en caso de que uses sesiones)
        res.setHeader('Access-Control-Allow-Credentials', true);
    
        // Pasar a la siguiente capa de middleware
        next();
    });
    

    Alternativamente, puedes permitir solo orígenes específicos modificando la cabecera Access-Control-Allow-Origin en consecuencia.

    Una vez que modifiques las cabeceras CORS en tu aplicación de node.js, el frontend de Angular debería poder realizar solicitudes de origen cruzado sin problemas.

Comments are closed.