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

132
Views
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 answers
Answer question

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 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!