I am developing a CEP query page where the information is sent and returned in ajax:
$.ajax({
url: "@Url.Action("PesquisarCEP", "CEP")" + "?cep" + retirarMascara($("#dsCEP").val()),
type: "GET",
success: function (retorno) {
if (retorno != null) {
$("#Logradouro").val(retorno.Logradouro);
$("#Bairro").val(retorno.Bairro);
$("#Estado").val(retorno.IdMunicipio.IdEstado.ID);
ajaxBuscarMunicipio(retorno.IdMunicipio.ID, retorno.IdMunicipio.IdEstado.ID)
}
else {
$.notify("Não foi encontrado o CEP: " + $("#enderecoCEP").val() + ", Você pode preencher o endereço manualmente.", { status: "danger" });
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
bootbox.alert("Oops, Não foi possivel conectar-se ao servidor da Onofre, Tente mais tarde.");
}
This AJAX calls a method, either looks for the address by entering the zip code, if it does not find it, the method returns null.
Controller Method:
[HttpGet]
public JsonResult PesquisarCEP(string cep)
{
try
{
CepRep repositorio = new CepRep();
return Json(repositorio.PesquisarCEP(cep), JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
throw new Exception("CEP não encontrado!!!!");
}
}
The problem is that when the method returns null, instead of going to success, it value for the ajax "error" method. With the following error: "Unexpected end of JSON input".
How to make the "Sucess" methods receive the null normally?