Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Devuelve un mensaje de error individual después de una llamada ajax en ASP.NET MVC 5

Cuando envío una solicitud ajax al servidor, quiero devolver un mensaje individual al cliente en el texto de respuesta en caso de error. En modo de depuración en mi máquina de desarrollo, esto funciona bien. Desafortunadamente, en el modo de producción en el servidor web, siempre recibo un mensaje de error "Solicitud incorrecta", pero ya no aparece el mensaje individual. Estoy desarrollando mi aplicación en ASP.NET MVC 5 y estoy usando jQuery 3.6.0.

Mi solicitud de ajax se ve así:

 $.ajax({ type: 'POST', url: 'myURL', data: { val1: clientVal1, val2: clientVal2 }, success: function (res) { //do smthg... }, error: function (response) { alert(response.responseText); } });

En el lado del servidor, tomo la llamada ajax así:

 [HttpPost] public ActionResult myURL(string val1, string val2) { if(val1.contains(val2)) { } else { Response.StatusCode = 400; Response.Write("My custom error msg."); return new HttpStatusCodeResult(400); } return Json(new { someVal1, otherVal2}, JsonRequestBehavior.AllowGet); }

Los httperrors en mi archivo webconfig se ven así:

 <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="403" subStatusCode="-1" /> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="404" path="/ErrorHandling/http404" responseMode="ExecuteURL" /> <error statusCode="403" path="/ErrorHandling/http403" responseMode="ExecuteURL" /> <error statusCode="500" path="/ErrorHandling/http500" responseMode="ExecuteURL" /> </httpErrors>

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

He encontrado la solución. Primero tuve que mover la redirección a las páginas de error individuales en web.config al área <system.web>. Ahora mi área system.web se ve así ([...] significa que hay otras configuraciones que no son relevantes para esto):

 <system.web> [...] <customErrors mode="On" redirectMode="ResponseRedirect" defaultRedirect="/ErrorHandling/http500"> <error statusCode="404" redirect="/ErrorHandling/http404" /> <error statusCode="403" redirect="/ErrorHandling/http403" /> <error statusCode="500" redirect="/ErrorHandling/http500" /> </customErrors> [...] </system.web>

Después de eso, tuve que cambiar la sección system.webServer como se sugiere en la publicación de freedomn-m y sugerido por Rahul Sharam de la siguiente manera:

 <httpErrors errorMode="Custom" existingResponse="PassThrough"> </httpErrors>

Ahora todo funciona como debería.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda