2
I am developing a ZIP consultation page where sending and feedback information is done 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 whether it looks for the address informing 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 values to the "error" method of ajax. With the following error: "Unexpected end of JSON input".
How to make "Sucess" methods receive null normally?
When the zip code is not found it always falls in the catch?? Could you try doing Return
Json(new{})
– Marco Giovanni