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.

¿Límite de tamaño de FormData en solicitud POST fetch de Javascript y error de CORS?

Estoy intentando hacer una solicitud de fecth bastante sencilla a una de nuestras APIs de negocios (back-end que corre en .NET Core 3.1/ASP Core MVC) y me está dando un resultado inconsistente. Si la longitud del valor del token pasado a través de un campo de datos de formulario es mayor a unos 1000 caracteres, la solicitud es detenida con un error CORS (el estándar “ha sido bloqueado por la política CORS: No se encuentra presente el encabezado ‘Access-Control-Allow-Origin’ en el recurso solicitado”), pero si es menos que esa longitud, la solicitud se realiza sin problemas. Tanto en Chrome como en Firefox me aparece un error CORS sobre la ausencia de este valor del encabezado. No hay límites específicos en el tamaño de entrada establecidos dentro de la API en sí o en el servidor IIS en el que se está ejecutando, por lo que no entiendo lo que podría estar sucediendo.

Estoy asumiendo que esta es una de esas ocasiones en las que un error CORS solo está enmascarando algo más que está sucediendo. ¿Hay algo obvio que esté pasando por alto?

obj = {
data: {
idToken: “A”.repeat(1200) // solo con fines de prueba
}
};

str = JSON.stringify(obj);

const fd = new FormData();
fd.append(“token”, str);

const BaseURL = “https://XXXX”;
const url = ${BaseURL}/api/YYY/getLocations;

fetch(url, {
method: ‘post’,
body: fd,
})
.then…

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que te estás encontrando con un problema de CORS al hacer una solicitud Fetch a una de las APIs de tu negocio. Es probable que el error de CORS que estás recibiendo esté enmascarando algo más que está sucediendo.

    Has mencionado que no hay límites específicos en el tamaño de entrada establecidos dentro de la propia API o del servidor IIS en el que se está ejecutando, por lo que es posible que el problema esté relacionado con la longitud del valor del token pasado a través del campo de formdata. Has proporcionado un ejemplo del código que estás usando para hacer la solicitud, y parece que estás pasando un token con una longitud de 1200 caracteres.

    Puede valer la pena probar la solicitud con un token de longitud menor para ver si el error de CORS persiste. Si el error no persiste, es probable que la longitud del token esté causando el problema.

    Si el error de CORS persiste, es posible que el problema esté relacionado con algo más. Vale la pena verificar la configuración de CORS en el servidor para asegurarse de que se estén enviando los encabezados correctos.

Comments are closed.