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.

Solicitud bloqueada por la política CORS: No se encontró el encabezado de acceso ‘Access-Control-Allow-Origin’ al establecer el tipo de contenido multipart/form-data.

Soy un traductor español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy nuevo en react y nodeJS, y tengo un problema cuando hago una solicitud para actualizar e insertar datos con carga de imagen usando multer, envío los datos como formData.

Pero, obtengo un error de solicitud bloqueada por CORS mientras configuro el encabezado de tipo de contenido multipart/form-data con código de solicitud dinámico, lo he intentado en postman y funciona bien, y en otro proyecto también funciona perfectamente.

error:

El acceso a XMLHttpRequest en ‘http://localhost:3000/v1/data/insert’ desde el origen ‘http://localhost:3001’ ha sido bloqueado por la política CORS: No se encuentra presente el encabezado ‘Access-Control-Allow-Origin’ en el recurso solicitado.

aqui está el código

export async function put(url, data, config = {}) {
return axiosApi
.put(url, { …data }, { …config })
.then(response => response.data)
}

export const updateProduct = data =>
put(url.UPDATE_PRODUCT, data, {
headers: {
“content-type”: “multipart/form-data”,
},
})

API

app.use((req, res, next) => {
res.setHeader(‘Access-Control-Allow-Origin’, ‘*’);
res.setHeader(‘Access-Control-Allow-Method’, ‘GET, POST, PUT, PATCH, DELETE, OPTIONS’);
res.setHeader(‘Access-Control-Allow-Headers’, ‘Content-Type, Authorization’);
next();
})

en otra página he intentado insertar y actualizar datos pero sin subir archivos o sin enviar encabezados de tipo de contenido, ¿alguien puede ayudarme por favor?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error de CORS ocurre porque el backend no permite solicitudes del frontend debido a razones de seguridad. Para solucionar este problema, es necesario actualizar el código del backend para permitir solicitudes CORS.

    Esto se puede hacer mediante la adición del siguiente fragmento de código a su código backend:

    app.use((req, res, next) => {
      res.setHeader('Access-Control-Allow-Origin', '*');
      res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
      res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
      next();
    });
    

    Este fragmento de código agrega los encabezados requeridos para permitir solicitudes CORS. El encabezado Access-Control-Allow-Origin permite solicitudes desde cualquier origen, mientras que el encabezado Access-Control-Allow-Methods permite los métodos HTTP que se pueden utilizar para las solicitudes. El encabezado Access-Control-Allow-Headers permite que se envíen el tipo de contenido y los encabezados de autorización con la solicitud.

    Una vez que haya agregado el fragmento de código a su backend, intente enviar la solicitud con el encabezado de tipo de contenido multipart/form-data nuevamente. Ahora debería funcionar sin el error de CORS.

Comments are closed.