Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

541
Visualizações
.ajax devuelve el error 500 usando mvc C#, no puede obtener una respuesta exitosa. Solo quiero una verificación simple que devuelva el éxito o el fracaso

Estoy tratando de programar una llamada .ajax "simple". Cuando se presiona un botón, quiero verificar si el correo electrónico en uno de los campos de mi formulario es un correo electrónico válido. Si es así, quiero avanzar al método que intenta enviar el correo electrónico.

Aquí está mi llamada .ajax en JavaScript:

 var emailAddress = $("#EmailAddress_Field").val(); $.ajax({ method: "POST", url: checkEmailUrl, data: emailAddress, contentType: "json", success: function () { self.sendEmail(); //currently just prints "success" }, error: function () { self.showFailure(); } });

Aquí está mi método en mi controlador:

 public ActionResult CheckEmail(string emailAddress) { try { MailAddress address = new MailAddress(emailAddress); } catch(System.FormatException e) { return Json(false); } return Json(true); }

Cambié todo, originalmente mi método C# era async y devolvía una Task<ActionResult> pero parecía tener problemas de carrera, así que pensé que era mejor hacerlo sincrónico. También intenté regresar en el formato Json(new { Success = false }) pero esto tampoco pareció funcionar. Intenté agregar el indicador traditional: true debajo de la llamada .ajax, como se sugiere en otra pregunta de Stack, pero fue en vano. El contentType también ha ido y venido de application\json a json .

Actualmente, ya sea que el correo electrónico sea válido o no, al presionar el botón se realiza la función de error . En la pestaña Inspeccionar > Red de Chrome, puedo ver la llamada a CheckEmail pero el estado es 500, con la respuesta {"ClientMessage":"Unknown Error has occurred.", "Code":1} y la llamada más reciente de la pila de llamadas es en jquery.js enviar:

 // Do send the request // This may raise an exception which is actually // handled in jQuery.ajax (so no try/catch here) xhr.send((options.hasContent && options.data) || null); // There is an error here

La segunda llamada más reciente está en jquery.js ajax:

 try { state = 1; transport.send(requestHeaders, done); // Call was here } catch (e) { ...

Al usar Debug y pasar por alto, puedo decir que mi función C# devuelve Json(true) correctamente cuando un correo electrónico es válido, pero de alguna manera el servidor no analiza esto correctamente y se produce un error.

Si alguien sabe cómo obtener .ajax para informar un éxito, hágamelo saber.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

tienes que arreglar ajax y eliminar el tipo de contenido json

 $.ajax({ method: "POST", url: checkEmailUrl, data: {emailAddress:emailAddress}, success: function () { self.sendEmail(); //currently just prints "success" }, error: function () { self.showFailure(); } });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda